Description:
change datetime picker widget
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r692:57c9378ff75a - - 7 files changed: 62 inserted, 29 deleted

@@ -44,48 +44,50
44 44
45 45 # To use debugger
46 46 # gem 'debugger'
47 47 #
48 48
49 49 #in-place editor
50 50 gem 'best_in_place', '~> 3.0.1'
51 51
52 52 # jquery addition
53 53 gem 'jquery-rails'
54 54 gem 'jquery-ui-rails'
55 55 gem 'jquery-timepicker-addon-rails'
56 56 gem 'jquery-tablesorter'
57 57 gem 'jquery-countdown-rails'
58 58
59 59 #syntax highlighter
60 60 gem 'rouge'
61 61
62 62 #add bootstrap
63 63 gem 'bootstrap-sass', '~> 3.2.0'
64 64 gem 'bootstrap-switch-rails'
65 65 gem 'bootstrap-toggle-rails'
66 66 gem 'autoprefixer-rails'
67 67
68 - #bootstrap sortable
68 + #more bootstrp add-on
69 69 gem 'momentjs-rails'
70 70 gem 'rails_bootstrap_sortable'
71 + gem 'bootstrap-datepicker-rails'
72 + gem 'bootstrap3-datetimepicker-rails'
71 73
72 74 #----------- user interface -----------------
73 75 #select 2
74 76 gem 'select2-rails'
75 77 #ace editor
76 78 gem 'ace-rails-ap'
77 79 #paginator
78 80 gem 'will_paginate', '~> 3.0.7'
79 81
80 82 gem 'mail'
81 83 gem 'rdiscount'
82 84 gem 'dynamic_form'
83 85 gem 'in_place_editing'
84 86 gem 'verification', :git => 'https://github.com/sikachu/verification.git'
85 87
86 88
87 89 #---------------- testiing -----------------------
88 90 gem 'minitest-reporters'
89 91
90 92 #---------------- for console --------------------
91 93 gem 'fuzzy-string-match'
@@ -40,52 +40,56
40 40 builder (~> 3.1)
41 41 activerecord (4.2.7.1)
42 42 activemodel (= 4.2.7.1)
43 43 activesupport (= 4.2.7.1)
44 44 arel (~> 6.0)
45 45 activerecord-session_store (1.0.0)
46 46 actionpack (>= 4.0, < 5.1)
47 47 activerecord (>= 4.0, < 5.1)
48 48 multi_json (~> 1.11, >= 1.11.2)
49 49 rack (>= 1.5.2, < 3)
50 50 railties (>= 4.0, < 5.1)
51 51 activesupport (4.2.7.1)
52 52 i18n (~> 0.7)
53 53 json (~> 1.7, >= 1.7.7)
54 54 minitest (~> 5.1)
55 55 thread_safe (~> 0.3, >= 0.3.4)
56 56 tzinfo (~> 1.1)
57 57 ansi (1.5.0)
58 58 arel (6.0.4)
59 59 autoprefixer-rails (6.6.0)
60 60 execjs
61 61 best_in_place (3.0.3)
62 62 actionpack (>= 3.2)
63 63 railties (>= 3.2)
64 + bootstrap-datepicker-rails (1.7.1.1)
65 + railties (>= 3.0)
64 66 bootstrap-sass (3.2.0.2)
65 67 sass (~> 3.2)
66 68 bootstrap-switch-rails (3.3.3)
67 69 bootstrap-toggle-rails (2.2.1.0)
70 + bootstrap3-datetimepicker-rails (4.17.47)
71 + momentjs-rails (>= 2.8.1)
68 72 builder (3.2.2)
69 73 coffee-rails (4.2.1)
70 74 coffee-script (>= 2.2.0)
71 75 railties (>= 4.0.0, < 5.2.x)
72 76 coffee-script (2.4.1)
73 77 coffee-script-source
74 78 execjs
75 79 coffee-script-source (1.12.2)
76 80 concurrent-ruby (1.0.4)
77 81 dynamic_form (1.1.4)
78 82 erubis (2.7.0)
79 83 execjs (2.7.0)
80 84 fuzzy-string-match (1.0.0)
81 85 RubyInline (>= 3.8.6)
82 86 globalid (0.3.7)
83 87 activesupport (>= 4.1.0)
84 88 haml (4.0.7)
85 89 tilt
86 90 haml-rails (0.9.0)
87 91 actionpack (>= 4.0.1)
88 92 activesupport (>= 4.0.1)
89 93 haml (>= 4.0.6, < 5.0)
90 94 html2haml (>= 1.0.1)
91 95 railties (>= 4.0.1)
@@ -180,51 +184,53
180 184 actionpack (>= 4.0)
181 185 activesupport (>= 4.0)
182 186 sprockets (>= 3.0.0)
183 187 sqlite3 (1.3.12)
184 188 thor (0.19.4)
185 189 thread_safe (0.3.5)
186 190 tilt (2.0.5)
187 191 tzinfo (1.2.2)
188 192 thread_safe (~> 0.1)
189 193 uglifier (3.0.4)
190 194 execjs (>= 0.3.0, < 3)
191 195 will_paginate (3.0.12)
192 196 yaml_db (0.4.2)
193 197 rails (>= 3.0, < 5.1)
194 198 rake (>= 0.8.7)
195 199
196 200 PLATFORMS
197 201 ruby
198 202
199 203 DEPENDENCIES
200 204 ace-rails-ap
201 205 activerecord-session_store
202 206 autoprefixer-rails
203 207 best_in_place (~> 3.0.1)
208 + bootstrap-datepicker-rails
204 209 bootstrap-sass (~> 3.2.0)
205 210 bootstrap-switch-rails
206 211 bootstrap-toggle-rails
212 + bootstrap3-datetimepicker-rails
207 213 coffee-rails
208 214 dynamic_form
209 215 fuzzy-string-match
210 216 haml
211 217 haml-rails
212 218 in_place_editing
213 219 jquery-countdown-rails
214 220 jquery-rails
215 221 jquery-tablesorter
216 222 jquery-timepicker-addon-rails
217 223 jquery-ui-rails
218 224 mail
219 225 minitest-reporters
220 226 momentjs-rails
221 227 mysql2
222 228 rails (~> 4.2.0)
223 229 rails_bootstrap_sortable
224 230 rdiscount
225 231 rouge
226 232 sass-rails
227 233 select2-rails
228 234 sqlite3
229 235 uglifier
230 236 verification!
@@ -11,31 +11,33
11 11 // GO AFTER THE REQUIRES BELOW.
12 12 //
13 13 //= require jquery
14 14 //= require jquery_ujs
15 15 //= require jquery-ui
16 16 //= require bootstrap-sprockets
17 17 //= require moment
18 18 //= require bootstrap-sortable
19 19 //= require select2
20 20 //= require ace-rails-ap
21 21 //= require ace/mode-c_cpp
22 22 //= require ace/mode-python
23 23 //= require ace/mode-ruby
24 24 //= require ace/mode-pascal
25 25 //= require ace/mode-javascript
26 26 //= require ace/mode-java
27 27 //= require ace/theme-merbivore
28 28 //= require custom
29 29 //= require jquery.countdown
30 30 //-------------- addition from local_jquery -----------
31 31 //= require jquery-tablesorter
32 32 //= require best_in_place
33 33 //= require best_in_place.jquery-ui
34 34 //= require brython
35 + //= require bootstrap-datepicker
36 + //= require bootstrap-datetimepicker
35 37
36 38 // since this is after blank line, it is not downloaded
37 39 //x= require prototype
38 40 //x= require prototype_ujs
39 41 //x= require effects
40 42 //x= require dragdrop
41 43 //x= require controls
@@ -12,48 +12,50
12 12 * // bootstrap says that we should not do this, but @import each file instead
13 13 * # *= require_tree .
14 14 * # *= require_self
15 15 */
16 16
17 17 @import "jquery-ui";
18 18 //@import "jquery.ui.core";
19 19 //@import "jquery.ui.theme";
20 20 //@import "jquery.ui.datepicker";
21 21 //@import "jquery.ui.slider";
22 22 @import "jquery-ui-timepicker-addon";
23 23 @import "jquery-tablesorter/theme.metro-dark";
24 24 @import "jquery.countdown";
25 25 @import "tablesorter-theme.cafe";
26 26
27 27 //bootstrap
28 28 @import "bootstrap-sprockets";
29 29 @import "bootstrap";
30 30 @import "select2";
31 31 @import "select2-bootstrap";
32 32
33 33 //@import bootstrap3-switch
34 34 @import "bootstrap-toggle";
35 35 @import "bootstrap-sortable";
36 + @import "bootstrap-datepicker3";
37 + @import "bootstrap-datetimepicker";
36 38
37 39 //bootstrap navbar color (from)
38 40 $bgDefault: #19197b;
39 41 $bgHighlight: #06064b;
40 42 $colDefault: #8e8eb4;
41 43 $colHighlight: #ffffff;
42 44 $dropDown: false;
43 45
44 46 @font-face {
45 47 font-family: 'Glyphicons Halflings';
46 48 src: font-path('bootstrap/glyphicons-halflings-regular.eot');
47 49 src: font-path('bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
48 50 font-path('bootstrap/glyphicons-halflings-regular.woff') format('woff'),
49 51 font-path('bootstrap/glyphicons-halflings-regular.ttf') format('truetype'),
50 52 font-path('bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
51 53 }
52 54
53 55
54 56 .navbar-default {
55 57 background-color: $bgDefault;
56 58 border-color: $bgHighlight;
57 59
58 60 .navbar-brand {
59 61 color: $colDefault;
@@ -237,52 +237,49
237 237 end
238 238
239 239 def remove_contest
240 240 problem = Problem.find(params[:id])
241 241 contest = Contest.find(params[:contest_id])
242 242 if problem!=nil and contest!=nil
243 243 problem.contests.delete(contest)
244 244 end
245 245 redirect_to :action => 'manage'
246 246 end
247 247
248 248 ##################################
249 249 protected
250 250
251 251 def allow_test_pair_import?
252 252 if defined? ALLOW_TEST_PAIR_IMPORT
253 253 return ALLOW_TEST_PAIR_IMPORT
254 254 else
255 255 return false
256 256 end
257 257 end
258 258
259 259 def change_date_added
260 260 problems = get_problems_from_params
261 - year = params[:date_added][:year].to_i
262 - month = params[:date_added][:month].to_i
263 - day = params[:date_added][:day].to_i
264 - date = Date.new(year,month,day)
261 + date = Date.parse(params[:date_added])
265 262 problems.each do |p|
266 263 p.date_added = date
267 264 p.save
268 265 end
269 266 end
270 267
271 268 def add_to_contest
272 269 problems = get_problems_from_params
273 270 contest = Contest.find(params[:contest][:id])
274 271 if contest!=nil and contest.enabled
275 272 problems.each do |p|
276 273 p.contests << contest
277 274 end
278 275 end
279 276 end
280 277
281 278 def set_available(avail)
282 279 problems = get_problems_from_params
283 280 problems.each do |p|
284 281 p.available = avail
285 282 p.save
286 283 end
287 284 end
288 285
@@ -26,69 +26,82
26 26 }
27 27 shiftclick(start,stop,$(this).is(':checked') )
28 28 }
29 29 start = orig_stop
30 30 } else {
31 31 start = parseInt($(this).attr('id').split('-')[2]);
32 32 }
33 33 });
34 34 });
35 35
36 36
37 37 %h1 Manage problems
38 38
39 39 %p= link_to '[Back to problem list]', problems_path
40 40
41 41 = form_tag :action=>'do_manage' do
42 42 .panel.panel-primary
43 43 .panel-heading
44 44 Action
45 45 .panel-body
46 46 .submit-box
47 47 What do you want to do to the selected problem?
48 48 %br/
49 49 (You can shift-click to select a range of problems)
50 - %ul
50 + %ul.form-inline
51 51 %li
52 52 Change date added to
53 - = select_date Date.current, :prefix => 'date_added'
53 + .input-group.date
54 + = text_field_tag :date_added, class: 'form-control'
55 + %span.input-group-addon
56 + %span.glyphicon.glyphicon-calendar
57 + -# = select_date Date.current, :prefix => 'date_added'
54 58 &nbsp;&nbsp;&nbsp;
55 - = submit_tag 'Change', :name => 'change_date_added', class: 'btn btn-default'
59 + = submit_tag 'Change', :name => 'change_date_added', class: 'btn btn-primary btn-sm'
56 60 %li
57 61 Set available to
58 - = submit_tag 'True', :name => 'enable_problem', class: 'btn btn-default'
59 - = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-default'
62 + = submit_tag 'True', :name => 'enable_problem', class: 'btn btn-primary btn-sm'
63 + = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-primary btn-sm'
60 64
61 65 - if GraderConfiguration.multicontests?
62 66 %li
63 67 Add to
64 68 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
65 - = submit_tag 'Add', :name => 'add_to_contest', class: 'btn btn-default'
69 + = submit_tag 'Add', :name => 'add_to_contest', class: 'btn btn-primary btn-sm'
66 70 %li
67 71 Add problems to group
68 72 = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2'
69 73 = submit_tag 'Add', name: 'add_group', class: 'btn btn-default'
70 74
71 75
72 76 %table.table.table-hover
73 77 %tr{style: "text-align: left;"}
74 78 %th= check_box_tag 'select_all'
75 79 %th Name
76 80 %th Full name
77 81 %th Available
78 82 %th Date added
79 83 - if GraderConfiguration.multicontests?
80 84 %th Contests
81 85
82 86 - num = 0
83 87 - for problem in @problems
84 88 - num += 1
85 89 %tr{:id => "row-prob-#{problem.id}", :name=> "prob-#{problem.id}"}
86 90 %td= check_box_tag "prob-#{problem.id}-#{num}"
87 91 %td= problem.name
88 92 %td= problem.full_name
89 93 %td= problem.available
90 94 %td= problem.date_added
91 95 - if GraderConfiguration.multicontests?
92 96 %td
93 97 - problem.contests.each do |contest|
94 98 = "(#{contest.name} [#{link_to 'x', :action => 'remove_contest', :id => problem.id, :contest_id => contest.id }])"
99 +
100 + :javascript
101 + $('.input-group.date').datetimepicker({
102 + format: 'DD/MMM/YYYY',
103 + showTodayButton: true,
104 + widgetPositioning: {horizontal: 'auto', vertical: 'bottom'},
105 +
106 + });
107 +
@@ -1,24 +1,35
1 1 %h1 Editing site
2 2 = error_messages_for :site
3 3 = form_for(@site) do |f|
4 - %p
5 - %b Name
6 - %br/
7 - = f.text_field :name
8 - %p
9 - %b Password
10 - %br/
11 - = f.text_field :password
12 - %p
13 - %b Started
14 - %br/
15 - = f.check_box :started
16 - %p
17 - %b Start time
18 - %br/
19 - = f.datetime_select :start_time, :include_blank => true
20 - %p
21 - = f.submit "Update"
4 + .row
5 + .col-md-4
6 + .form-group.field
7 + = f.label :name, "Name"
8 + = f.text_field :name, class: 'form-control'
9 + .form-group.field
10 + = f.label :password, "Password"
11 + = f.text_field :password, class: 'form-control'
12 + .form-group.field
13 + = f.label :started, "Started"
14 + = f.check_box :started, class: 'form-control'
15 + .form-group.field
16 + = f.label :start_time, "Start time"
17 + -# = f.datetime_select :start_time, :include_blank => true
18 + .input-group.date
19 + = f.text_field :start_time, class:'form-control' , value: (@site.start_time ? @site.start_time.strftime('%d/%b/%Y %H:%M') : '')
20 + %span.input-group-addon
21 + %span.glyphicon.glyphicon-calendar
22 + .actions
23 + = f.submit "Update", class: 'btn btn-primary'
24 + .col-md-8
25 +
22 26 = link_to 'Show', @site
23 27 |
24 28 = link_to 'Back', sites_path
29 +
30 +
31 + :javascript
32 + $('.input-group.date').datetimepicker({
33 + format: 'DD/MMM/YYYY HH:mm',
34 + });
35 +
You need to be logged in to leave comments. Login now