mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
UX: improves local-dates form (#7268)
This commit is contained in:
@ -4,38 +4,39 @@
|
||||
# author: Joffrey Jaffeux
|
||||
hide_plugin if self.respond_to?(:hide_plugin)
|
||||
|
||||
register_asset "javascripts/discourse-local-dates.js.no-module.es6"
|
||||
register_asset "stylesheets/common/discourse-local-dates.scss"
|
||||
register_asset "moment.js", :vendored_core_pretty_text
|
||||
register_asset "moment-timezone.js", :vendored_core_pretty_text
|
||||
register_asset 'javascripts/discourse-local-dates.js.no-module.es6'
|
||||
register_asset 'stylesheets/common/discourse-local-dates.scss'
|
||||
register_asset 'moment.js', :vendored_core_pretty_text
|
||||
register_asset 'moment-timezone.js', :vendored_core_pretty_text
|
||||
|
||||
enabled_site_setting :discourse_local_dates_enabled
|
||||
|
||||
after_initialize do
|
||||
module ::DiscourseLocalDates
|
||||
PLUGIN_NAME ||= "discourse-local-dates".freeze
|
||||
POST_CUSTOM_FIELD ||= "local_dates".freeze
|
||||
PLUGIN_NAME ||= 'discourse-local-dates'.freeze
|
||||
POST_CUSTOM_FIELD ||= 'local_dates'.freeze
|
||||
end
|
||||
|
||||
[
|
||||
"../lib/discourse_local_dates/engine.rb",
|
||||
].each { |path| load File.expand_path(path, __FILE__) }
|
||||
%w[../lib/discourse_local_dates/engine.rb].each do |path|
|
||||
load File.expand_path(path, __FILE__)
|
||||
end
|
||||
|
||||
register_post_custom_field_type(DiscourseLocalDates::POST_CUSTOM_FIELD, :json)
|
||||
|
||||
on(:before_post_process_cooked) do |doc, post|
|
||||
dates = doc.css('span.discourse-local-date').map do |cooked_date|
|
||||
date = {}
|
||||
cooked_date.attributes.values.each do |attribute|
|
||||
data_name = attribute.name&.gsub('data-', '')
|
||||
if data_name && ['date', 'time', 'timezone', 'recurring'].include?(data_name)
|
||||
unless attribute.value == 'undefined'
|
||||
date[data_name] = CGI.escapeHTML(attribute.value || "")
|
||||
dates =
|
||||
doc.css('span.discourse-local-date').map do |cooked_date|
|
||||
date = {}
|
||||
cooked_date.attributes.values.each do |attribute|
|
||||
data_name = attribute.name&.gsub('data-', '')
|
||||
if data_name && %w[date time timezone recurring].include?(data_name)
|
||||
unless attribute.value == 'undefined'
|
||||
date[data_name] = CGI.escapeHTML(attribute.value || '')
|
||||
end
|
||||
end
|
||||
end
|
||||
date
|
||||
end
|
||||
date
|
||||
end
|
||||
|
||||
if dates.present?
|
||||
post.custom_fields[DiscourseLocalDates::POST_CUSTOM_FIELD] = dates
|
||||
@ -51,9 +52,9 @@ after_initialize do
|
||||
end
|
||||
|
||||
on(:reduce_cooked) do |fragment|
|
||||
fragment.css(".discourse-local-date").each do |container|
|
||||
if container.attributes["data-email-preview"]
|
||||
preview = container.attributes["data-email-preview"].value
|
||||
fragment.css('.discourse-local-date').each do |container|
|
||||
if container.attributes['data-email-preview']
|
||||
preview = container.attributes['data-email-preview'].value
|
||||
container.content = preview
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user