From 41648f027ea497a919171faf3b4b88149120ca9f Mon Sep 17 00:00:00 2001 From: hiepluonghlv Date: Fri, 27 Jun 2014 00:24:09 +0800 Subject: [PATCH 1/3] sidebar task --- .../stylesheets/course_preferences.css.scss | 7 +++++ .../_course_navbar_preference_fields.html.erb | 11 +++++-- .../course_preferences/_navbar_form.html.erb | 31 +++++++++++++++++-- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/course_preferences.css.scss b/app/assets/stylesheets/course_preferences.css.scss index 96571d251..4123929f3 100644 --- a/app/assets/stylesheets/course_preferences.css.scss +++ b/app/assets/stylesheets/course_preferences.css.scss @@ -12,3 +12,10 @@ -moz-border-radius: 4px; border-radius: 4px; } + +tr.hidden_navbar_tr, td.hidden_navbar_td { + display: none; +} +div.div-add-item-sidebar input{ + margin-bottom: 9px; +} diff --git a/app/views/course_preferences/_course_navbar_preference_fields.html.erb b/app/views/course_preferences/_course_navbar_preference_fields.html.erb index eddb084d5..1450890ee 100644 --- a/app/views/course_preferences/_course_navbar_preference_fields.html.erb +++ b/app/views/course_preferences/_course_navbar_preference_fields.html.erb @@ -1,6 +1,11 @@ - + <%= f.input_field :name %> <%= f.input_field :pos %> <%= f.input_field :is_displayed, as: :boolean %> - <%= f.input_field :is_enabled, as: :boolean %> - \ No newline at end of file + <%= f.input_field :is_enabled, as: :boolean %> + <%= submit_tag 'Remove', :type => 'button', :onclick => "hide_tr(this)", :class => "btn", :id => "btn_remove_#{f.object.id}" %> + + + + + diff --git a/app/views/course_preferences/_navbar_form.html.erb b/app/views/course_preferences/_navbar_form.html.erb index 6b409a045..1b7f05e93 100644 --- a/app/views/course_preferences/_navbar_form.html.erb +++ b/app/views/course_preferences/_navbar_form.html.erb @@ -12,7 +12,7 @@ Display?(Hide for students) - Enabled? + Action @@ -22,6 +22,10 @@ <% end %> +
+ <%= collection_select(:course_navbar_preference,:course_id,@course.course_navbar_preferences.where(is_enabled: false),:id,:name,prompt: true)%> + +

Levels and Achievement:

<%= @ranking.preferable_item.description %>

@@ -34,4 +38,27 @@
<%= f.button :submit, "Update", class: " btn-large btn-primary"%>
-<% end %> \ No newline at end of file +<% end %> + + From eb42ec08c2e80ec9accf7372ec4671ce1f4ba3e2 Mon Sep 17 00:00:00 2001 From: hiepluonghlv Date: Thu, 3 Jul 2014 13:39:59 +0800 Subject: [PATCH 2/3] update sidebar task --- app/assets/javascripts/preference_sidebar.js | 19 ++++++++++++++ .../course_preferences/_navbar_form.html.erb | 26 ++----------------- 2 files changed, 21 insertions(+), 24 deletions(-) create mode 100644 app/assets/javascripts/preference_sidebar.js diff --git a/app/assets/javascripts/preference_sidebar.js b/app/assets/javascripts/preference_sidebar.js new file mode 100644 index 000000000..7478569d7 --- /dev/null +++ b/app/assets/javascripts/preference_sidebar.js @@ -0,0 +1,19 @@ +$(document).ready(function() { + $('#btn_add_item_sidebar').click(function(event) { + var select_option = $('#course_navbar_preference_course_id').find(':selected'); + var tr_to_show = $('#btn_remove_' + $(select_option).val()).parent().parent(); + $(tr_to_show).removeClass('hidden_navbar_tr'); + $(tr_to_show).find('input[id*="is_enabled"]').prop('checked', true); + $(select_option).remove(); + }); +}); + +function hide_tr(e) { + var tr_to_hide = $(e).parent().parent(); + $(tr_to_hide).addClass('hidden_navbar_tr'); + $(tr_to_hide).find('input[id*="is_enabled"]').prop('checked', false); + $('#course_navbar_preference_course_id').append($('
<% end %> - From c4091453c5266410ded43e9272432407141881b5 Mon Sep 17 00:00:00 2001 From: hiepluonghlv Date: Sat, 5 Jul 2014 19:05:13 +0800 Subject: [PATCH 3/3] improve sidebar task --- app/assets/javascripts/preference_sidebar.js | 142 ++++++++++++++++-- .../course_preferences_controller.rb | 61 ++++++++ .../_course_navbar_preference_fields.html.erb | 6 +- .../course_preferences/_navbar_form.html.erb | 17 +-- config/routes.rb | 2 + 5 files changed, 205 insertions(+), 23 deletions(-) diff --git a/app/assets/javascripts/preference_sidebar.js b/app/assets/javascripts/preference_sidebar.js index 7478569d7..b79cff5cf 100644 --- a/app/assets/javascripts/preference_sidebar.js +++ b/app/assets/javascripts/preference_sidebar.js @@ -1,19 +1,135 @@ $(document).ready(function() { - $('#btn_add_item_sidebar').click(function(event) { - var select_option = $('#course_navbar_preference_course_id').find(':selected'); - var tr_to_show = $('#btn_remove_' + $(select_option).val()).parent().parent(); - $(tr_to_show).removeClass('hidden_navbar_tr'); - $(tr_to_show).find('input[id*="is_enabled"]').prop('checked', true); - $(select_option).remove(); + $('#btn_add_sidebar_item').click(function(e) { + e.preventDefault(); + var $select_option = $('#course_navbar_preference_course_id').find(':selected'); + if($select_option.val()){ + var data = { func : 'add', id : $select_option.val() }; + sidebar_update_values(data, this); + } }); + + $('.btn-remove-sidebar-item').click(function(e) { + e.preventDefault(); + var data = { func : 'remove', id : '0' }; + sidebar_update_values(data, this); + }); + + $('input[id*="course_course_navbar_preferences_attributes"][id*="name"]').change(function(e) { + e.preventDefault(); + var data = { func : 'update_name', id : '0', name : $(this).val() }; + sidebar_update_values(data, this); + + }); + + $('input[id*="course_course_navbar_preferences_attributes"][id*="pos"]').each(function(e) { + $(this).data("old_value", $(this).val()); + }); + + $('input[id*="course_course_navbar_preferences_attributes"][id*="pos"]').change(function(e) { + e.preventDefault(); + if(isNaN($(this).val())){ + $(this).val($(this).data("old_value")); + }else{ + var data = { func : 'update_pos', id : '0', pos : $(this).val() }; + sidebar_update_values(data, this); + } + }); + + $('input[id*="course_course_navbar_preferences_attributes"][id*="is_displayed"]').change(function(e) { + e.preventDefault(); + var data = { func : 'update_is_displayed', id : '0', checked : $(this).is(":checked") }; + sidebar_update_values(data, $(this).parent()); + }); + + $('input[id*="ip_display_st_level_ach"]').change(function(e) { + e.preventDefault(); + var id = $(this).attr('id').split('_')[$(this).attr('id').split('_').length - 1]; + var data = { func : 'update_display_st_level_ach',id : id, checked : $(this).is(":checked") }; + sidebar_update_values(data, this); + }); }); -function hide_tr(e) { - var tr_to_hide = $(e).parent().parent(); - $(tr_to_hide).addClass('hidden_navbar_tr'); - $(tr_to_hide).find('input[id*="is_enabled"]').prop('checked', false); +function update_layout_pos(handler, index, count){ + var $tr_to_change = $(handler).parent().parent(); + var item = $tr_to_change.find('input.sidebar-item-name').val(); + var $litag = $('ul#navbar_tabs span#badge_' + item).parent().parent().clone(); + $('ul#navbar_tabs span#badge_' + item).parent().parent().remove(); + if(parseInt(index) <= parseInt(count - 2)){ + $('ul#navbar_tabs li:eq(' + index + ')').before($litag); + }else { + $('ul#navbar_tabs li:eq(' + (parseInt(index)-1) + ')').after($litag); + } + $(handler).data("old_value", $(handler).val()); +} + +function update_layout_name(handler){ + var $tr_to_change = $(handler).parent().parent(); + var item = $tr_to_change.find('input.sidebar-item-name').val(); + var $atag = $('ul#navbar_tabs span#badge_' + item).parent(); + var $children = $atag.children(); + $atag.empty(); + $atag.append($children.eq(0)); + $atag.append($(handler).val()); + $atag.append($children.eq(1)); +} + +function update_layout_remove(handler){ + var $tr_to_hide = $(handler).parent().parent(); + $tr_to_hide.find('input[id*="is_enabled"]').prop('checked', false); + $tr_to_hide.addClass('hidden_navbar_tr'); $('#course_navbar_preference_course_id').append($('