- content_for :head do = stylesheet_link_tag 'problems' = javascript_include_tag 'local_jquery' :javascript $(document).ready( function() { function shiftclick(start,stop,value) { $('tr input').each( function(id,input) { var $input=$(input); var iid=parseInt($input.attr('id').split('-')[2]); if(iid>=start&&iid<=stop){ $input.prop('checked',value) } }); } $('tr input').click( function(e) { if (e.shiftKey) { stop = parseInt($(this).attr('id').split('-')[2]); var orig_stop = stop if (typeof start !== 'undefined') { if (start > stop) { var tmp = start; start = stop; stop = tmp; } shiftclick(start,stop,$(this).is(':checked') ) } start = orig_stop } else { start = parseInt($(this).attr('id').split('-')[2]); } }); }); %h1 Manage problems %p= link_to '[Back to problem list]', problems_path = form_tag :action=>'do_manage' do .panel.panel-primary .panel-heading Action .panel-body .submit-box What do you want to do to the selected problem? %br/ (You can shift-click to select a range of problems) %ul.form-inline %li Change "Date added" to .input-group.date = text_field_tag :date_added, class: 'form-control' %span.input-group-addon %span.glyphicon.glyphicon-calendar -# = select_date Date.current, :prefix => 'date_added'     = submit_tag 'Change', :name => 'change_date_added', class: 'btn btn-primary btn-sm' %li Set "Available" to = submit_tag 'True', :name => 'enable_problem', class: 'btn btn-primary btn-sm' = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-primary btn-sm' - if GraderConfiguration.multicontests? %li Add selected problems to contest = select("contest","id",Contest.all.collect {|c| [c.title, c.id]}) = submit_tag 'Add', :name => 'add_to_contest', class: 'btn btn-primary btn-sm' %li Add selected problems to user group = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2' = submit_tag 'Add', name: 'add_group', class: 'btn btn-primary' %li Add the following tags to the selected problems = select_tag "tag_ids", options_from_collection_for_select( Tag.all, 'id','name'), id: 'tags_name',class: 'select2', multiple: true, data: {placeholder: 'Select tags by clicking', width: "200px"} = submit_tag 'Add', name: 'add_tags', class: 'btn btn-primary' %table.table.table-hover.datatable %thead %tr{style: "text-align: left;"} %th= check_box_tag 'select_all' %th Name %th Full name %th Tags %th Available %th Date added - if GraderConfiguration.multicontests? %th Contests %tbody - num = 0 - for problem in @problems - num += 1 %tr{:id => "row-prob-#{problem.id}", :name=> "prob-#{problem.id}"} %td= check_box_tag "prob-#{problem.id}-#{num}" %td= problem.name %td= problem.full_name %td - problem.tags.each do |t| %span.label.label-default= t.name %td= problem.available %td= problem.date_added - if GraderConfiguration.multicontests? %td - problem.contests.each do |contest| = "(#{contest.name} [#{link_to 'x', :action => 'remove_contest', :id => problem.id, :contest_id => contest.id }])" :javascript $('.input-group.date').datetimepicker({ format: 'DD/MMM/YYYY', showTodayButton: true, locale: 'en', widgetPositioning: {horizontal: 'auto', vertical: 'bottom'}, }); $('.datatable').DataTable({ paging: false });