diff --git a/app/views/problems/manage.html.haml b/app/views/problems/manage.html.haml
--- a/app/views/problems/manage.html.haml
+++ b/app/views/problems/manage.html.haml
@@ -36,50 +36,83 @@
%h1 Manage problems
-%p= link_to '[Back to problem list]', :action => 'list'
+%p= link_to '[Back to problem list]', problems_path
= form_tag :action=>'do_manage' do
- .submitbox
- What do you want to do to the selected problem?
- %br/
- (You can shift-click to select a range of problems)
- %ul
- %li
- Change date added to
- = select_date Date.current, :prefix => 'date_added'
-
- = submit_tag 'Change', :name => 'change_date_added'
- %li
- Set available to
- = submit_tag 'True', :name => 'enable_problem'
- = submit_tag 'False', :name => 'disable_problem'
+ .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 to
- = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
- = submit_tag 'Add', :name => 'add_to_contest'
+ - 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
- %tr{style: "text-align: left;"}
- %th= check_box_tag 'select_all'
- %th Name
- %th Full name
- %th Available
- %th Date added
- - if GraderConfiguration.multicontests?
- %th Contests
+ %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
- - 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.available
- %td= problem.date_added
- - if GraderConfiguration.multicontests?
+ %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.contests.each do |contest|
- = "(#{contest.name} [#{link_to 'x', :action => 'remove_contest', :id => problem.id, :contest_id => contest.id }])"
+ - 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,
+ widgetPositioning: {horizontal: 'auto', vertical: 'bottom'},
+
+ });
+ $('.datatable').DataTable({
+ paging: false
+ });