Commit a4abbe84fc2c118417035ce1f7f415768fdc1801
1 parent
8268e552
Exists in
master
and in
1 other branch
Adapt badge edition form for composed actions
Showing
3 changed files
with
35 additions
and
7 deletions
Show diff stats
lib/gamification_plugin.rb
@@ -50,7 +50,7 @@ class GamificationPlugin < Noosfero::Plugin | @@ -50,7 +50,7 @@ class GamificationPlugin < Noosfero::Plugin | ||
50 | end | 50 | end |
51 | 51 | ||
52 | def js_files | 52 | def js_files |
53 | - ['jquery.noty.packaged.min.js', 'jquery.easypiechart.min.js', 'main.js'] | 53 | + ['jquery.noty.packaged.min.js', 'jquery.easypiechart.min.js', 'main.js', 'admin.js'] |
54 | end | 54 | end |
55 | 55 | ||
56 | 56 |
public/admin.js
@@ -4,5 +4,20 @@ var gamificationPluginAdmin = { | @@ -4,5 +4,20 @@ var gamificationPluginAdmin = { | ||
4 | var template = $('.gamification-plugin-rank-rules .template-level > div').clone(); | 4 | var template = $('.gamification-plugin-rank-rules .template-level > div').clone(); |
5 | template.find('.level-value').text($('.gamification-plugin-rank-rules .rank-rules .items .level').length + 1); | 5 | template.find('.level-value').text($('.gamification-plugin-rank-rules .rank-rules .items .level').length + 1); |
6 | $('.gamification-plugin-rank-rules .rank-rules .items').append(template); | 6 | $('.gamification-plugin-rank-rules .rank-rules .items').append(template); |
7 | + }, | ||
8 | + | ||
9 | + selectCustomFieldsOnNameChange: function() { | ||
10 | + jQuery('.controller-actions').find('input').attr('disabled', 'disabled'); | ||
11 | + jQuery('.controller-actions').hide(); | ||
12 | + console.log('.name_'+jQuery('#gamification-plugin-form-badge-name').val()); | ||
13 | + var name = jQuery('#gamification-plugin-form-badge-name').find('option:selected').text(); | ||
14 | + jQuery('.name_'+name).show(); | ||
15 | + jQuery('.name_'+name).find('input').removeAttr('disabled'); | ||
7 | } | 16 | } |
17 | + | ||
8 | } | 18 | } |
19 | + | ||
20 | +jQuery(function() { | ||
21 | + $('#gamification-plugin-form-badge-name').on('change', gamificationPluginAdmin.selectCustomFieldsOnNameChange); | ||
22 | + gamificationPluginAdmin.selectCustomFieldsOnNameChange(); | ||
23 | +}); |
views/gamification_plugin_badges/_form.html.erb
@@ -11,9 +11,11 @@ | @@ -11,9 +11,11 @@ | ||
11 | </div> | 11 | </div> |
12 | <% end %> | 12 | <% end %> |
13 | 13 | ||
14 | - <div class="field"> | 14 | + <% rules = Merit::BadgeRules::AVAILABLE_RULES %> |
15 | + <% rules.merge! Merit::BadgeRules::CONFERENCE_RULES %> | ||
16 | + <div class="field" id="gamification-plugin-form-badge-name"> | ||
15 | <%= f.label :name %><br /> | 17 | <%= f.label :name %><br /> |
16 | - <%= f.select :name, Merit::BadgeRules::AVAILABLE_RULES.map{ |key, rule| key } %> | 18 | + <%= f.select :name, rules.map{ |key, rule| key } %> |
17 | </div> | 19 | </div> |
18 | <div class="field"> | 20 | <div class="field"> |
19 | <%= f.label :title %><br /> | 21 | <%= f.label :title %><br /> |
@@ -27,11 +29,22 @@ | @@ -27,11 +29,22 @@ | ||
27 | <%= f.label :level %><br /> | 29 | <%= f.label :level %><br /> |
28 | <%= f.text_field :level %> | 30 | <%= f.text_field :level %> |
29 | </div> | 31 | </div> |
32 | + <h4><%= _('Actions') %></h4> | ||
30 | <%= f.fields_for :custom_fields do |c| %> | 33 | <%= f.fields_for :custom_fields do |c| %> |
31 | - <div class="field"> | ||
32 | - <%= c.label :threshold %><br /> | ||
33 | - <%= c.text_field :threshold %> | ||
34 | - </div> | 34 | + <% rules.each do |name, settings| %> |
35 | + <div class='controller-actions <%= "name_#{name}" %>'> | ||
36 | + <% settings.each do |setting| %> | ||
37 | + <%= c.label _(setting[:action]) %> | ||
38 | + <%= c.fields_for setting[:action] do |d| %> | ||
39 | + <% action = (@gamification_plugin_badge.custom_fields || {}).fetch(setting[:action], {}) %> | ||
40 | + <div class="field"> | ||
41 | + <%= d.label :threshold %><br /> | ||
42 | + <%= d.text_field :threshold, {value: action.fetch('threshold', "")} %> | ||
43 | + </div> | ||
44 | + <% end %> | ||
45 | + <% end %> | ||
46 | + </div> | ||
47 | + <% end %> | ||
35 | <% end %> | 48 | <% end %> |
36 | <div class="actions"> | 49 | <div class="actions"> |
37 | <%= f.submit %> | 50 | <%= f.submit %> |