diff --git a/lib/gamification_plugin.rb b/lib/gamification_plugin.rb index c399c22..874b13c 100644 --- a/lib/gamification_plugin.rb +++ b/lib/gamification_plugin.rb @@ -50,7 +50,7 @@ class GamificationPlugin < Noosfero::Plugin end def js_files - ['jquery.noty.packaged.min.js', 'jquery.easypiechart.min.js', 'main.js'] + ['jquery.noty.packaged.min.js', 'jquery.easypiechart.min.js', 'main.js', 'admin.js'] end diff --git a/public/admin.js b/public/admin.js index b1da1d7..a42287f 100644 --- a/public/admin.js +++ b/public/admin.js @@ -4,5 +4,20 @@ var gamificationPluginAdmin = { var template = $('.gamification-plugin-rank-rules .template-level > div').clone(); template.find('.level-value').text($('.gamification-plugin-rank-rules .rank-rules .items .level').length + 1); $('.gamification-plugin-rank-rules .rank-rules .items').append(template); + }, + + selectCustomFieldsOnNameChange: function() { + jQuery('.controller-actions').find('input').attr('disabled', 'disabled'); + jQuery('.controller-actions').hide(); + console.log('.name_'+jQuery('#gamification-plugin-form-badge-name').val()); + var name = jQuery('#gamification-plugin-form-badge-name').find('option:selected').text(); + jQuery('.name_'+name).show(); + jQuery('.name_'+name).find('input').removeAttr('disabled'); } + } + +jQuery(function() { + $('#gamification-plugin-form-badge-name').on('change', gamificationPluginAdmin.selectCustomFieldsOnNameChange); + gamificationPluginAdmin.selectCustomFieldsOnNameChange(); +}); diff --git a/views/gamification_plugin_badges/_form.html.erb b/views/gamification_plugin_badges/_form.html.erb index ef7d411..0f351f1 100644 --- a/views/gamification_plugin_badges/_form.html.erb +++ b/views/gamification_plugin_badges/_form.html.erb @@ -11,9 +11,11 @@ <% end %> -
+ <% rules = Merit::BadgeRules::AVAILABLE_RULES %> + <% rules.merge! Merit::BadgeRules::CONFERENCE_RULES %> +
<%= f.label :name %>
- <%= f.select :name, Merit::BadgeRules::AVAILABLE_RULES.map{ |key, rule| key } %> + <%= f.select :name, rules.map{ |key, rule| key } %>
<%= f.label :title %>
@@ -27,11 +29,22 @@ <%= f.label :level %>
<%= f.text_field :level %>
+

<%= _('Actions') %>

<%= f.fields_for :custom_fields do |c| %> -
- <%= c.label :threshold %>
- <%= c.text_field :threshold %> -
+ <% rules.each do |name, settings| %> +
+ <% settings.each do |setting| %> + <%= c.label _(setting[:action]) %> + <%= c.fields_for setting[:action] do |d| %> + <% action = (@gamification_plugin_badge.custom_fields || {}).fetch(setting[:action], {}) %> +
+ <%= d.label :threshold %>
+ <%= d.text_field :threshold, {value: action.fetch('threshold', "")} %> +
+ <% end %> + <% end %> +
+ <% end %> <% end %>
<%= f.submit %> -- libgit2 0.21.2