Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-26 11:00:28 +01:00
FEATURE: new option to force restart at each revisit
Dieser Commit ist enthalten in:
Ursprung
fd9cc78e58
Commit
1c3d272b79
6 geänderte Dateien mit 28 neuen und 2 gelöschten Zeilen
|
@ -10,6 +10,7 @@ const wizardProperties = [
|
||||||
'after_time_scheduled',
|
'after_time_scheduled',
|
||||||
'required',
|
'required',
|
||||||
'prompt_completion',
|
'prompt_completion',
|
||||||
|
'restart_on_revisit',
|
||||||
'min_trust',
|
'min_trust',
|
||||||
'theme_id'
|
'theme_id'
|
||||||
];
|
];
|
||||||
|
@ -264,6 +265,7 @@ CustomWizard.reopenClass({
|
||||||
props['after_time'] = false;
|
props['after_time'] = false;
|
||||||
props['required'] = false;
|
props['required'] = false;
|
||||||
props['prompt_completion'] = false;
|
props['prompt_completion'] = false;
|
||||||
|
props['restart_on_revisit'] = false;
|
||||||
props['min_trust'] = 0;
|
props['min_trust'] = 0;
|
||||||
props['steps'] = Ember.A();
|
props['steps'] = Ember.A();
|
||||||
};
|
};
|
||||||
|
|
|
@ -111,6 +111,16 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="setting">
|
||||||
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.restart_on_revisit'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.restart_on_revisit}}
|
||||||
|
<span>{{i18n 'admin.wizard.restart_on_revisit_label'}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="setting full">
|
<div class="setting full">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.url'}}</h3>
|
<h3>{{i18n 'admin.wizard.url'}}</h3>
|
||||||
|
|
|
@ -33,6 +33,8 @@ en:
|
||||||
required_label: "Users cannot skip the wizard."
|
required_label: "Users cannot skip the wizard."
|
||||||
prompt_completion: "Prompt"
|
prompt_completion: "Prompt"
|
||||||
prompt_completion_label: "Prompt user to complete wizard."
|
prompt_completion_label: "Prompt user to complete wizard."
|
||||||
|
restart_on_revisit: "Restart"
|
||||||
|
restart_on_revisit_label: "Restart the the wizard whenever the user revists, regardless of prior progress."
|
||||||
min_trust: "Trust"
|
min_trust: "Trust"
|
||||||
min_trust_label: "Trust level required to access wizard."
|
min_trust_label: "Trust level required to access wizard."
|
||||||
theme_id: "Theme"
|
theme_id: "Theme"
|
||||||
|
|
|
@ -79,7 +79,7 @@ class CustomWizard::Builder
|
||||||
def build(build_opts = {}, params = {})
|
def build(build_opts = {}, params = {})
|
||||||
unless (@wizard.completed? && !@wizard.multiple_submissions && !@wizard.user.admin) || !@steps || !@wizard.permitted?
|
unless (@wizard.completed? && !@wizard.multiple_submissions && !@wizard.user.admin) || !@steps || !@wizard.permitted?
|
||||||
|
|
||||||
reset_submissions if build_opts[:reset]
|
reset_submissions if build_opts[:reset] || @wizard.restart_on_revisit
|
||||||
|
|
||||||
@steps.each do |step_template|
|
@steps.each do |step_template|
|
||||||
@wizard.append_step(step_template['id']) do |step|
|
@wizard.append_step(step_template['id']) do |step|
|
||||||
|
|
|
@ -26,6 +26,7 @@ class CustomWizard::Template
|
||||||
@save_submissions = data['save_submissions'] || false
|
@save_submissions = data['save_submissions'] || false
|
||||||
@multiple_submissions = data['multiple_submissions'] || false
|
@multiple_submissions = data['multiple_submissions'] || false
|
||||||
@prompt_completion = data['prompt_completion'] || false
|
@prompt_completion = data['prompt_completion'] || false
|
||||||
|
@restart_on_revist = data['restart_on_revist'] || false
|
||||||
@min_trust = data['min_trust'] || 0
|
@min_trust = data['min_trust'] || 0
|
||||||
@after_signup = data['after_signup']
|
@after_signup = data['after_signup']
|
||||||
@after_time = data['after_time']
|
@after_time = data['after_time']
|
||||||
|
|
|
@ -16,7 +16,8 @@ class CustomWizard::Wizard
|
||||||
:after_time_scheduled,
|
:after_time_scheduled,
|
||||||
:after_signup,
|
:after_signup,
|
||||||
:required,
|
:required,
|
||||||
:prompt_completion
|
:prompt_completion,
|
||||||
|
:restart_on_revisit
|
||||||
|
|
||||||
def initialize(user=nil, attrs = {})
|
def initialize(user=nil, attrs = {})
|
||||||
@steps = []
|
@steps = []
|
||||||
|
@ -157,6 +158,16 @@ class CustomWizard::Wizard
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.restart_on_revisit
|
||||||
|
rows = PluginStoreRow.where(plugin_name: 'custom_wizard')
|
||||||
|
wizards = [*rows].select { |r| r.value['restart_on_revisit'] }
|
||||||
|
if wizards.any?
|
||||||
|
wizards.first.key
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def self.steps(wizard_id)
|
def self.steps(wizard_id)
|
||||||
wizard = PluginStore.get('custom_wizard', wizard_id)
|
wizard = PluginStore.get('custom_wizard', wizard_id)
|
||||||
wizard ? wizard['steps'] : nil
|
wizard ? wizard['steps'] : nil
|
||||||
|
|
Laden …
In neuem Issue referenzieren