diff --git a/Gemfile b/Gemfile --- a/Gemfile +++ b/Gemfile @@ -65,9 +65,11 @@ gem 'bootstrap-toggle-rails' gem 'autoprefixer-rails' -#bootstrap sortable +#more bootstrp add-on gem 'momentjs-rails' gem 'rails_bootstrap_sortable' +gem 'bootstrap-datepicker-rails' +gem 'bootstrap3-datetimepicker-rails' #----------- user interface ----------------- #select 2 diff --git a/Gemfile.lock b/Gemfile.lock --- a/Gemfile.lock +++ b/Gemfile.lock @@ -61,10 +61,14 @@ best_in_place (3.0.3) actionpack (>= 3.2) railties (>= 3.2) + bootstrap-datepicker-rails (1.7.1.1) + railties (>= 3.0) bootstrap-sass (3.2.0.2) sass (~> 3.2) bootstrap-switch-rails (3.3.3) bootstrap-toggle-rails (2.2.1.0) + bootstrap3-datetimepicker-rails (4.17.47) + momentjs-rails (>= 2.8.1) builder (3.2.2) coffee-rails (4.2.1) coffee-script (>= 2.2.0) @@ -201,9 +205,11 @@ activerecord-session_store autoprefixer-rails best_in_place (~> 3.0.1) + bootstrap-datepicker-rails bootstrap-sass (~> 3.2.0) bootstrap-switch-rails bootstrap-toggle-rails + bootstrap3-datetimepicker-rails coffee-rails dynamic_form fuzzy-string-match diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -32,6 +32,8 @@ //= require best_in_place //= require best_in_place.jquery-ui //= require brython +//= require bootstrap-datepicker +//= require bootstrap-datetimepicker // since this is after blank line, it is not downloaded //x= require prototype diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -33,6 +33,8 @@ //@import bootstrap3-switch @import "bootstrap-toggle"; @import "bootstrap-sortable"; +@import "bootstrap-datepicker3"; +@import "bootstrap-datetimepicker"; //bootstrap navbar color (from) $bgDefault: #19197b; diff --git a/app/controllers/problems_controller.rb b/app/controllers/problems_controller.rb --- a/app/controllers/problems_controller.rb +++ b/app/controllers/problems_controller.rb @@ -258,10 +258,7 @@ def change_date_added problems = get_problems_from_params - year = params[:date_added][:year].to_i - month = params[:date_added][:month].to_i - day = params[:date_added][:day].to_i - date = Date.new(year,month,day) + date = Date.parse(params[:date_added]) problems.each do |p| p.date_added = date p.save 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 @@ -47,22 +47,26 @@ What do you want to do to the selected problem? %br/ (You can shift-click to select a range of problems) - %ul + %ul.form-inline %li Change date added to - = select_date Date.current, :prefix => 'date_added' + .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-default' + = 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-default' - = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-default' + = 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', class: 'btn btn-default' + = submit_tag 'Add', :name => 'add_to_contest', class: 'btn btn-primary btn-sm' %li Add problems to group = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2' @@ -92,3 +96,12 @@ %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'}, + + }); + diff --git a/app/views/sites/edit.html.haml b/app/views/sites/edit.html.haml --- a/app/views/sites/edit.html.haml +++ b/app/views/sites/edit.html.haml @@ -1,24 +1,35 @@ %h1 Editing site = error_messages_for :site = form_for(@site) do |f| - %p - %b Name - %br/ - = f.text_field :name - %p - %b Password - %br/ - = f.text_field :password - %p - %b Started - %br/ - = f.check_box :started - %p - %b Start time - %br/ - = f.datetime_select :start_time, :include_blank => true - %p - = f.submit "Update" + .row + .col-md-4 + .form-group.field + = f.label :name, "Name" + = f.text_field :name, class: 'form-control' + .form-group.field + = f.label :password, "Password" + = f.text_field :password, class: 'form-control' + .form-group.field + = f.label :started, "Started" + = f.check_box :started, class: 'form-control' + .form-group.field + = f.label :start_time, "Start time" + -# = f.datetime_select :start_time, :include_blank => true + .input-group.date + = f.text_field :start_time, class:'form-control' , value: (@site.start_time ? @site.start_time.strftime('%d/%b/%Y %H:%M') : '') + %span.input-group-addon + %span.glyphicon.glyphicon-calendar + .actions + = f.submit "Update", class: 'btn btn-primary' + .col-md-8 + = link_to 'Show', @site | = link_to 'Back', sites_path + + +:javascript + $('.input-group.date').datetimepicker({ + format: 'DD/MMM/YYYY HH:mm', + }); +