Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-25 10:40:28 +01:00
98 Zeilen
2,6 KiB
Ruby
98 Zeilen
2,6 KiB
Ruby
# frozen_string_literal: true
|
|
module DiscoursePluginStatistics
|
|
class Plugin
|
|
def self.discourse_custom_wizard
|
|
subscription_features = {
|
|
wizard: {
|
|
save_submissions: 0,
|
|
after_signup: 0,
|
|
prompt_completion: 0,
|
|
required: 0,
|
|
permitted: 0,
|
|
},
|
|
step: {
|
|
required_data: 0,
|
|
permitted_params: 0,
|
|
force_final: 0
|
|
},
|
|
field: {
|
|
condition: 0,
|
|
type: {
|
|
text: 0,
|
|
textarea: 0,
|
|
text_only: 0,
|
|
date: 0,
|
|
time: 0,
|
|
date_time: 0,
|
|
number: 0,
|
|
checkbox: 0,
|
|
dropdown: 0,
|
|
composer: 0,
|
|
composer_preview: 0,
|
|
url: 0,
|
|
upload: 0,
|
|
tag: 0,
|
|
category: 0,
|
|
group: 0,
|
|
user_selector: 0,
|
|
},
|
|
realtime_validations: 0
|
|
},
|
|
action: {
|
|
type: {
|
|
create_topic: 0,
|
|
send_message: 0,
|
|
update_profile: 0,
|
|
open_composer: 0,
|
|
route_to: 0,
|
|
send_to_api: 0,
|
|
watch_categories: 0,
|
|
watch_tags: 0,
|
|
add_to_group: 0,
|
|
create_group: 0,
|
|
create_category: 0,
|
|
}
|
|
}
|
|
}
|
|
|
|
increment_feature_count = lambda do |type, key, value|
|
|
if key == 'type'
|
|
if !subscription_features[type.to_sym][:type][value.to_sym].nil?
|
|
subscription_features[type.to_sym][:type][value.to_sym] += 1
|
|
end
|
|
else
|
|
if !subscription_features[type.to_sym][key.to_sym].nil?
|
|
subscription_features[type.to_sym][key.to_sym] += 1
|
|
end
|
|
end
|
|
end
|
|
|
|
CustomWizard::Template.list.each do |template|
|
|
template.each do |key, value|
|
|
increment_feature_count.call(:wizard, key, value)
|
|
end
|
|
template['steps'].each do |step|
|
|
step.each do |key, value|
|
|
increment_feature_count.call(:step, key, value)
|
|
end
|
|
step['fields'].each do |field|
|
|
field.each do |key, value|
|
|
increment_feature_count.call(:field, key, value)
|
|
end
|
|
end
|
|
end
|
|
template['actions'].each do |action|
|
|
action.each do |key, value|
|
|
increment_feature_count.call(:action, key, value)
|
|
end
|
|
end
|
|
end
|
|
|
|
{
|
|
total_wizards: CustomWizard::Template.list.size,
|
|
subscription_type: CustomWizard::Subscription.type.to_s,
|
|
subscription_features: subscription_features
|
|
}
|
|
end
|
|
end
|
|
end
|