forked from e621ng/e621ng
[DText] Explicitly set when color is allowed in preview (#665)
This commit is contained in:
parent
b28bb5c99f
commit
4ff4c3718e
@ -3,7 +3,7 @@
|
||||
class DtextPreviewsController < ApplicationController
|
||||
def create
|
||||
body = params[:body] || ""
|
||||
dtext = helpers.format_text(body, allow_color: CurrentUser.user.is_privileged?)
|
||||
dtext = helpers.format_text(body, allow_color: params[:allow_color].to_s.truthy?)
|
||||
render json: { html: dtext, posts: deferred_posts }
|
||||
end
|
||||
end
|
||||
|
@ -9,7 +9,7 @@ class DtextInput < SimpleForm::Inputs::TextInput
|
||||
end
|
||||
|
||||
merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
|
||||
@builder.template.render("dtext_input", textarea: super(merged_input_options), limit: @options[:limit])
|
||||
@builder.template.render("dtext_input", textarea: super(merged_input_options), limit: @options[:limit], allow_color: @options.key?(:allow_color) ? @options[:allow_color] : CurrentUser.user.is_privileged?)
|
||||
end
|
||||
|
||||
def input_html_classes
|
||||
|
@ -6,6 +6,7 @@ DText.initialze_input = function ($element) {
|
||||
const $preview = $(".dtext-formatter-preview", $element);
|
||||
const $textarea = $(".dtext-formatter-input", $element);
|
||||
const $charcount = $(".dtext-formatter-charcount", $element);
|
||||
const allowColor = $element.attr("data-allow-color") === "true";
|
||||
|
||||
// Tab switching
|
||||
$(".dtext-formatter-tabs a", $element).on("click", event => {
|
||||
@ -13,7 +14,7 @@ DText.initialze_input = function ($element) {
|
||||
if ($element.attr("data-editing") == "true") {
|
||||
$preview.css("min-height", $textarea.outerHeight());
|
||||
$element.attr("data-editing", "false");
|
||||
update_preview($textarea, $preview);
|
||||
update_preview($textarea, $preview, allowColor);
|
||||
} else {
|
||||
$element.attr("data-editing", "true");
|
||||
$preview.attr("loading", "false");
|
||||
@ -47,7 +48,7 @@ DText.initialize_formatting_buttons = function (element) {
|
||||
};
|
||||
|
||||
/** Refreshes the preview field to match the provided input */
|
||||
function update_preview (input, preview) {
|
||||
function update_preview (input, preview, allowColor = false) {
|
||||
const currentText = input.val().trim();
|
||||
|
||||
// The input is empty, reset everything
|
||||
@ -67,9 +68,9 @@ function update_preview (input, preview) {
|
||||
SendQueue.add(() => {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/dtext_preview",
|
||||
url: "/dtext_preview.json",
|
||||
dataType: "json",
|
||||
data: { body: currentText },
|
||||
data: { body: currentText, allow_color: allowColor },
|
||||
success: (response) => {
|
||||
|
||||
// The loading was cancelled, since the user toggled back
|
||||
|
@ -436,7 +436,7 @@ let Note = {
|
||||
var text = $textarea.val();
|
||||
$note_body.data("original-body", text);
|
||||
Note.Body.set_text($note_body, $note_box, "Loading...");
|
||||
$.post("/dtext_preview.json", {body: text}).then(function (data) {
|
||||
$.post("/dtext_preview.json", { body: text, allow_color: true }).then(function (data) {
|
||||
Note.Body.set_text($note_body, $note_box, data.html);
|
||||
Note.Box.resize_inner_border($note_box);
|
||||
$note_body.show();
|
||||
@ -470,7 +470,7 @@ let Note = {
|
||||
var $note_box = Note.Box.find(id);
|
||||
$note_box.find(".note-box-inner-border").addClass("unsaved");
|
||||
Note.Body.set_text($note_body, $note_box, "Loading...");
|
||||
$.post("/dtext_preview.json", {body: text}).then(function (data) {
|
||||
$.post("/dtext_preview.json", { body: text, allow_color: true }).then(function (data) {
|
||||
Note.Body.set_text($note_body, $note_box, data.html);
|
||||
$note_body.show();
|
||||
$(window).trigger("e621:add_deferred_posts", data.posts);
|
||||
|
@ -203,7 +203,7 @@
|
||||
<label class="section-label" for="post_description">Description</label>
|
||||
</div>
|
||||
<div class="col2">
|
||||
<%= ApplicationController.new.render_to_string(partial: "dtext_input", locals: { limit: Danbooru.config.post_descr_max_size, textarea: '<textarea class="dtext-formatter-input tag-textarea dtext" id="post_description" rows="10" v-model="description"></textarea>'.html_safe }) %>
|
||||
<%= ApplicationController.new.render_to_string(partial: "dtext_input", locals: { limit: Danbooru.config.post_descr_max_size, textarea: '<textarea class="dtext-formatter-input tag-textarea dtext" id="post_description" rows="10" v-model="description"></textarea>'.html_safe, allow_color: true }) %>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="allowUploadAsPending" class="flex-grid border-bottom">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<%= error_messages_for :staff_note %>
|
||||
|
||||
<%= custom_form_for(staff_note, url: user_staff_notes_path(user_id: user.id), method: :post) do |f| %>
|
||||
<%= f.input :body, as: :dtext, label: false %>
|
||||
<%= f.input :body, as: :dtext, label: false, allow_color: true %>
|
||||
<%= f.button :submit, "Submit" %>
|
||||
<% end %>
|
||||
|
@ -18,8 +18,8 @@
|
||||
<%= select_tag("user[enable_privacy_mode]", options_for_select([["Yes", true], ["No", false]], @user.enable_privacy_mode?)) %>
|
||||
</div>
|
||||
|
||||
<%= f.input :profile_about, as: :dtext, label: "About", limit: Danbooru.config.user_about_max_size %>
|
||||
<%= f.input :profile_artinfo, as: :dtext, label: "Commission Info", limit: Danbooru.config.user_about_max_size %>
|
||||
<%= f.input :profile_about, as: :dtext, label: "About", limit: Danbooru.config.user_about_max_size, allow_color: true %>
|
||||
<%= f.input :profile_artinfo, as: :dtext, label: "Commission Info", limit: Danbooru.config.user_about_max_size, allow_color: true %>
|
||||
<%= f.input :base_upload_limit %>
|
||||
|
||||
<% if CurrentUser.is_bd_staff? || !@user.is_bd_staff? %>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="dtext-formatter" data-editing="true" data-initialized="false">
|
||||
<div class="dtext-formatter" data-editing="true" data-initialized="false" data-allow-color="<%= allow_color %>">
|
||||
<div class="dtext-formatter-tabs">
|
||||
<a data-action="edit" role="tab">Write</a>
|
||||
<a data-action="show" role="tab">Preview</a>
|
||||
|
@ -18,6 +18,6 @@
|
||||
<% if @artist.is_note_locked? %>
|
||||
<p>Artist is note locked. Notes cannot be edited.</p>
|
||||
<% end %>
|
||||
<%= f.input :notes, as: :dtext, limit: Danbooru.config.wiki_page_max_size, disabled: @artist.is_note_locked? %>
|
||||
<%= f.input :notes, as: :dtext, limit: Danbooru.config.wiki_page_max_size, disabled: @artist.is_note_locked?, allow_color: true %>
|
||||
<%= f.button :submit, "Submit" %>
|
||||
<% end %>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<% if @artist.notes.present? && @artist.visible? %>
|
||||
<div class="dtext-container">
|
||||
<%= format_text(@artist.notes) %>
|
||||
<%= format_text(@artist.notes, allow_color: true) %>
|
||||
</div>
|
||||
|
||||
<p><%= link_to "View wiki page", @artist.wiki_page %></p>
|
||||
|
@ -5,6 +5,6 @@
|
||||
<% end %>
|
||||
<%= f.input :duration, :hint => "in days" %>
|
||||
<%= f.input :is_permaban, as: :boolean, hint: 'ignores days' %>
|
||||
<%= f.input :reason, as: :dtext %>
|
||||
<%= f.input :reason, as: :dtext, allow_color: false %>
|
||||
<%= f.button :submit, :value => "Ban" %>
|
||||
<% end %>
|
||||
|
@ -2,6 +2,6 @@
|
||||
<%= custom_form_for(dmail) do |f| %>
|
||||
<%= f.input :to_name, label: "To", autocomplete: "user", input_html: { value: dmail.to.try(:name) } %>
|
||||
<%= f.input :title, as: :string, input_html: { size: 100 } %>
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.dmail_max_size %>
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.dmail_max_size, allow_color: false %>
|
||||
<%= f.button :submit, "Send", data: { disable_with: "Sending..." } %>
|
||||
<% end %>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<%= custom_form_for(@news_update) do |f| %>
|
||||
<%= f.input :message, as: :dtext %>
|
||||
<%= f.input :message, as: :dtext, allow_color: false %>
|
||||
<%= f.button :submit, "Submit" %>
|
||||
<% end %>
|
||||
|
@ -1 +1 @@
|
||||
<article data-width="<%= note.width %>" data-height="<%= note.height %>" data-x="<%= note.x %>" data-y="<%= note.y %>" data-id="<%= note.id %>" data-body="<%= note.body %>"><%= format_text(note.body) %></article>
|
||||
<article data-width="<%= note.width %>" data-height="<%= note.height %>" data-x="<%= note.x %>" data-y="<%= note.y %>" data-id="<%= note.id %>" data-body="<%= note.body %>"><%= format_text(note.body, allow_color: true) %></article>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<%= error_messages_for "pool" %>
|
||||
|
||||
<%= f.input :name, :as => :string, :input_html => { :value => @pool.pretty_name } %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size, allow_color: false %>
|
||||
<%= f.input :post_ids_string, as: :text, label: "Posts" %>
|
||||
<%= f.input :category, :collection => ["series", "collection"], :include_blank => false %>
|
||||
<%= f.input :is_active %>
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
<%= custom_form_for(@pool) do |f| %>
|
||||
<%= f.input :name, :as => :string, :required => true %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size, allow_color: false %>
|
||||
<%= f.input :post_ids_string, as: :text, label: "Posts" %>
|
||||
<%= f.input :category, :collection => ["series", "collection"], :include_blank => true, :selected => "", :required => true %>
|
||||
<%= f.input :is_active %>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<%= f.input :shortname, label: 'Short Name', as: :string,
|
||||
hint: "The short name is used for the set's metatag name. Can only contain letters, numbers, and underscores
|
||||
and must contain at least one letter or underscore. <a href=\"/post?tags=set%3Aexample\">set:example</a>".html_safe %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.pool_descr_max_size, allow_color: false %>
|
||||
|
||||
<%= f.input :is_public, label: "Public", hint: "Private sets are only visible to you. Public sets are visible to anyone, but only you and users you
|
||||
assign as maintainers can edit the set. Only accounts three days or older can make public sets." %>
|
||||
|
@ -42,7 +42,7 @@
|
||||
<%= f.input :source, as: :text, label: "Sources", input_html: { size: "60x5", spellcheck: false } %>
|
||||
|
||||
<div class="input">
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.post_descr_max_size %>
|
||||
<%= f.input :description, as: :dtext, limit: Danbooru.config.post_descr_max_size, allow_color: true %>
|
||||
</div>
|
||||
|
||||
<% if CurrentUser.is_privileged? %>
|
||||
|
@ -6,6 +6,6 @@
|
||||
<% unless user_feedback.new_record? %>
|
||||
<%= f.input :send_update_dmail, label: "Send update DMail", as: :boolean %>
|
||||
<% end %>
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.user_feedback_max_size %>
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.user_feedback_max_size, allow_color: false %>
|
||||
<%= f.button :submit, "Submit" %>
|
||||
<% end %>
|
||||
|
@ -34,9 +34,9 @@
|
||||
|
||||
<%= f.input :avatar_id, as: :string, label: "Avatar Post ID" %>
|
||||
|
||||
<%= f.input :profile_about, as: :dtext, label: "About Me", limit: Danbooru.config.user_about_max_size %>
|
||||
<%= f.input :profile_about, as: :dtext, label: "About Me", limit: Danbooru.config.user_about_max_size, allow_color: true %>
|
||||
|
||||
<%= f.input :profile_artinfo, as: :dtext, label: "Commission Info", limit: Danbooru.config.user_about_max_size %>
|
||||
<%= f.input :profile_artinfo, as: :dtext, label: "Commission Info", limit: Danbooru.config.user_about_max_size, allow_color: true %>
|
||||
|
||||
<%= f.input :time_zone, :include_blank => false %>
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
<h1 id="wiki-page-title"><%= @wiki_page.pretty_title %></h1>
|
||||
<% end %>
|
||||
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.wiki_page_max_size %>
|
||||
<%= f.input :body, as: :dtext, limit: Danbooru.config.wiki_page_max_size, allow_color: true %>
|
||||
|
||||
<% if CurrentUser.is_janitor? && @wiki_page.is_deleted? %>
|
||||
<%= f.input :is_deleted, :label => "Deleted", :hint => "Uncheck to restore this wiki page" %>
|
||||
|
Loading…
Reference in New Issue
Block a user