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

@@ -20,72 +20,74
20 # in production environments by default.
20 # in production environments by default.
21 gem 'sass-rails'
21 gem 'sass-rails'
22 gem 'coffee-rails'
22 gem 'coffee-rails'
23
23
24 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
24 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
25 # gem 'therubyracer', :platforms => :ruby
25 # gem 'therubyracer', :platforms => :ruby
26
26
27 gem 'uglifier'
27 gem 'uglifier'
28
28
29 gem 'haml'
29 gem 'haml'
30 gem 'haml-rails'
30 gem 'haml-rails'
31 # gem 'prototype-rails'
31 # gem 'prototype-rails'
32
32
33 # To use ActiveModel has_secure_password
33 # To use ActiveModel has_secure_password
34 # gem 'bcrypt-ruby', '~> 3.0.0'
34 # gem 'bcrypt-ruby', '~> 3.0.0'
35
35
36 # To use Jbuilder templates for JSON
36 # To use Jbuilder templates for JSON
37 # gem 'jbuilder'
37 # gem 'jbuilder'
38
38
39 # Use unicorn as the app server
39 # Use unicorn as the app server
40 # gem 'unicorn'
40 # gem 'unicorn'
41
41
42 # Deploy with Capistrano
42 # Deploy with Capistrano
43 # gem 'capistrano'
43 # gem 'capistrano'
44
44
45 # To use debugger
45 # To use debugger
46 # gem 'debugger'
46 # gem 'debugger'
47 #
47 #
48
48
49 #in-place editor
49 #in-place editor
50 gem 'best_in_place', '~> 3.0.1'
50 gem 'best_in_place', '~> 3.0.1'
51
51
52 # jquery addition
52 # jquery addition
53 gem 'jquery-rails'
53 gem 'jquery-rails'
54 gem 'jquery-ui-rails'
54 gem 'jquery-ui-rails'
55 gem 'jquery-timepicker-addon-rails'
55 gem 'jquery-timepicker-addon-rails'
56 gem 'jquery-tablesorter'
56 gem 'jquery-tablesorter'
57 gem 'jquery-countdown-rails'
57 gem 'jquery-countdown-rails'
58
58
59 #syntax highlighter
59 #syntax highlighter
60 gem 'rouge'
60 gem 'rouge'
61
61
62 #add bootstrap
62 #add bootstrap
63 gem 'bootstrap-sass', '~> 3.2.0'
63 gem 'bootstrap-sass', '~> 3.2.0'
64 gem 'bootstrap-switch-rails'
64 gem 'bootstrap-switch-rails'
65 gem 'bootstrap-toggle-rails'
65 gem 'bootstrap-toggle-rails'
66 gem 'autoprefixer-rails'
66 gem 'autoprefixer-rails'
67
67
68 - #bootstrap sortable
68 + #more bootstrp add-on
69 gem 'momentjs-rails'
69 gem 'momentjs-rails'
70 gem 'rails_bootstrap_sortable'
70 gem 'rails_bootstrap_sortable'
71 + gem 'bootstrap-datepicker-rails'
72 + gem 'bootstrap3-datetimepicker-rails'
71
73
72 #----------- user interface -----------------
74 #----------- user interface -----------------
73 #select 2
75 #select 2
74 gem 'select2-rails'
76 gem 'select2-rails'
75 #ace editor
77 #ace editor
76 gem 'ace-rails-ap'
78 gem 'ace-rails-ap'
77 #paginator
79 #paginator
78 gem 'will_paginate', '~> 3.0.7'
80 gem 'will_paginate', '~> 3.0.7'
79
81
80 gem 'mail'
82 gem 'mail'
81 gem 'rdiscount'
83 gem 'rdiscount'
82 gem 'dynamic_form'
84 gem 'dynamic_form'
83 gem 'in_place_editing'
85 gem 'in_place_editing'
84 gem 'verification', :git => 'https://github.com/sikachu/verification.git'
86 gem 'verification', :git => 'https://github.com/sikachu/verification.git'
85
87
86
88
87 #---------------- testiing -----------------------
89 #---------------- testiing -----------------------
88 gem 'minitest-reporters'
90 gem 'minitest-reporters'
89
91
90 #---------------- for console --------------------
92 #---------------- for console --------------------
91 gem 'fuzzy-string-match'
93 gem 'fuzzy-string-match'
@@ -16,100 +16,104
16 actionmailer (4.2.7.1)
16 actionmailer (4.2.7.1)
17 actionpack (= 4.2.7.1)
17 actionpack (= 4.2.7.1)
18 actionview (= 4.2.7.1)
18 actionview (= 4.2.7.1)
19 activejob (= 4.2.7.1)
19 activejob (= 4.2.7.1)
20 mail (~> 2.5, >= 2.5.4)
20 mail (~> 2.5, >= 2.5.4)
21 rails-dom-testing (~> 1.0, >= 1.0.5)
21 rails-dom-testing (~> 1.0, >= 1.0.5)
22 actionpack (4.2.7.1)
22 actionpack (4.2.7.1)
23 actionview (= 4.2.7.1)
23 actionview (= 4.2.7.1)
24 activesupport (= 4.2.7.1)
24 activesupport (= 4.2.7.1)
25 rack (~> 1.6)
25 rack (~> 1.6)
26 rack-test (~> 0.6.2)
26 rack-test (~> 0.6.2)
27 rails-dom-testing (~> 1.0, >= 1.0.5)
27 rails-dom-testing (~> 1.0, >= 1.0.5)
28 rails-html-sanitizer (~> 1.0, >= 1.0.2)
28 rails-html-sanitizer (~> 1.0, >= 1.0.2)
29 actionview (4.2.7.1)
29 actionview (4.2.7.1)
30 activesupport (= 4.2.7.1)
30 activesupport (= 4.2.7.1)
31 builder (~> 3.1)
31 builder (~> 3.1)
32 erubis (~> 2.7.0)
32 erubis (~> 2.7.0)
33 rails-dom-testing (~> 1.0, >= 1.0.5)
33 rails-dom-testing (~> 1.0, >= 1.0.5)
34 rails-html-sanitizer (~> 1.0, >= 1.0.2)
34 rails-html-sanitizer (~> 1.0, >= 1.0.2)
35 activejob (4.2.7.1)
35 activejob (4.2.7.1)
36 activesupport (= 4.2.7.1)
36 activesupport (= 4.2.7.1)
37 globalid (>= 0.3.0)
37 globalid (>= 0.3.0)
38 activemodel (4.2.7.1)
38 activemodel (4.2.7.1)
39 activesupport (= 4.2.7.1)
39 activesupport (= 4.2.7.1)
40 builder (~> 3.1)
40 builder (~> 3.1)
41 activerecord (4.2.7.1)
41 activerecord (4.2.7.1)
42 activemodel (= 4.2.7.1)
42 activemodel (= 4.2.7.1)
43 activesupport (= 4.2.7.1)
43 activesupport (= 4.2.7.1)
44 arel (~> 6.0)
44 arel (~> 6.0)
45 activerecord-session_store (1.0.0)
45 activerecord-session_store (1.0.0)
46 actionpack (>= 4.0, < 5.1)
46 actionpack (>= 4.0, < 5.1)
47 activerecord (>= 4.0, < 5.1)
47 activerecord (>= 4.0, < 5.1)
48 multi_json (~> 1.11, >= 1.11.2)
48 multi_json (~> 1.11, >= 1.11.2)
49 rack (>= 1.5.2, < 3)
49 rack (>= 1.5.2, < 3)
50 railties (>= 4.0, < 5.1)
50 railties (>= 4.0, < 5.1)
51 activesupport (4.2.7.1)
51 activesupport (4.2.7.1)
52 i18n (~> 0.7)
52 i18n (~> 0.7)
53 json (~> 1.7, >= 1.7.7)
53 json (~> 1.7, >= 1.7.7)
54 minitest (~> 5.1)
54 minitest (~> 5.1)
55 thread_safe (~> 0.3, >= 0.3.4)
55 thread_safe (~> 0.3, >= 0.3.4)
56 tzinfo (~> 1.1)
56 tzinfo (~> 1.1)
57 ansi (1.5.0)
57 ansi (1.5.0)
58 arel (6.0.4)
58 arel (6.0.4)
59 autoprefixer-rails (6.6.0)
59 autoprefixer-rails (6.6.0)
60 execjs
60 execjs
61 best_in_place (3.0.3)
61 best_in_place (3.0.3)
62 actionpack (>= 3.2)
62 actionpack (>= 3.2)
63 railties (>= 3.2)
63 railties (>= 3.2)
64 + bootstrap-datepicker-rails (1.7.1.1)
65 + railties (>= 3.0)
64 bootstrap-sass (3.2.0.2)
66 bootstrap-sass (3.2.0.2)
65 sass (~> 3.2)
67 sass (~> 3.2)
66 bootstrap-switch-rails (3.3.3)
68 bootstrap-switch-rails (3.3.3)
67 bootstrap-toggle-rails (2.2.1.0)
69 bootstrap-toggle-rails (2.2.1.0)
70 + bootstrap3-datetimepicker-rails (4.17.47)
71 + momentjs-rails (>= 2.8.1)
68 builder (3.2.2)
72 builder (3.2.2)
69 coffee-rails (4.2.1)
73 coffee-rails (4.2.1)
70 coffee-script (>= 2.2.0)
74 coffee-script (>= 2.2.0)
71 railties (>= 4.0.0, < 5.2.x)
75 railties (>= 4.0.0, < 5.2.x)
72 coffee-script (2.4.1)
76 coffee-script (2.4.1)
73 coffee-script-source
77 coffee-script-source
74 execjs
78 execjs
75 coffee-script-source (1.12.2)
79 coffee-script-source (1.12.2)
76 concurrent-ruby (1.0.4)
80 concurrent-ruby (1.0.4)
77 dynamic_form (1.1.4)
81 dynamic_form (1.1.4)
78 erubis (2.7.0)
82 erubis (2.7.0)
79 execjs (2.7.0)
83 execjs (2.7.0)
80 fuzzy-string-match (1.0.0)
84 fuzzy-string-match (1.0.0)
81 RubyInline (>= 3.8.6)
85 RubyInline (>= 3.8.6)
82 globalid (0.3.7)
86 globalid (0.3.7)
83 activesupport (>= 4.1.0)
87 activesupport (>= 4.1.0)
84 haml (4.0.7)
88 haml (4.0.7)
85 tilt
89 tilt
86 haml-rails (0.9.0)
90 haml-rails (0.9.0)
87 actionpack (>= 4.0.1)
91 actionpack (>= 4.0.1)
88 activesupport (>= 4.0.1)
92 activesupport (>= 4.0.1)
89 haml (>= 4.0.6, < 5.0)
93 haml (>= 4.0.6, < 5.0)
90 html2haml (>= 1.0.1)
94 html2haml (>= 1.0.1)
91 railties (>= 4.0.1)
95 railties (>= 4.0.1)
92 html2haml (2.0.0)
96 html2haml (2.0.0)
93 erubis (~> 2.7.0)
97 erubis (~> 2.7.0)
94 haml (~> 4.0.0)
98 haml (~> 4.0.0)
95 nokogiri (~> 1.6.0)
99 nokogiri (~> 1.6.0)
96 ruby_parser (~> 3.5)
100 ruby_parser (~> 3.5)
97 i18n (0.7.0)
101 i18n (0.7.0)
98 in_place_editing (1.2.0)
102 in_place_editing (1.2.0)
99 jquery-countdown-rails (2.0.2)
103 jquery-countdown-rails (2.0.2)
100 jquery-rails (4.2.1)
104 jquery-rails (4.2.1)
101 rails-dom-testing (>= 1, < 3)
105 rails-dom-testing (>= 1, < 3)
102 railties (>= 4.2.0)
106 railties (>= 4.2.0)
103 thor (>= 0.14, < 2.0)
107 thor (>= 0.14, < 2.0)
104 jquery-tablesorter (1.23.3)
108 jquery-tablesorter (1.23.3)
105 railties (>= 3.2, < 6)
109 railties (>= 3.2, < 6)
106 jquery-timepicker-addon-rails (1.4.1)
110 jquery-timepicker-addon-rails (1.4.1)
107 railties (>= 3.1)
111 railties (>= 3.1)
108 jquery-ui-rails (6.0.1)
112 jquery-ui-rails (6.0.1)
109 railties (>= 3.2.16)
113 railties (>= 3.2.16)
110 json (1.8.3)
114 json (1.8.3)
111 loofah (2.0.3)
115 loofah (2.0.3)
112 nokogiri (>= 1.5.9)
116 nokogiri (>= 1.5.9)
113 mail (2.6.4)
117 mail (2.6.4)
114 mime-types (>= 1.16, < 4)
118 mime-types (>= 1.16, < 4)
115 mime-types (3.1)
119 mime-types (3.1)
@@ -156,80 +160,82
156 actionpack (= 4.2.7.1)
160 actionpack (= 4.2.7.1)
157 activesupport (= 4.2.7.1)
161 activesupport (= 4.2.7.1)
158 rake (>= 0.8.7)
162 rake (>= 0.8.7)
159 thor (>= 0.18.1, < 2.0)
163 thor (>= 0.18.1, < 2.0)
160 rake (12.0.0)
164 rake (12.0.0)
161 rdiscount (2.2.0.1)
165 rdiscount (2.2.0.1)
162 rouge (2.0.7)
166 rouge (2.0.7)
163 ruby-progressbar (1.8.1)
167 ruby-progressbar (1.8.1)
164 ruby_parser (3.8.3)
168 ruby_parser (3.8.3)
165 sexp_processor (~> 4.1)
169 sexp_processor (~> 4.1)
166 sass (3.4.23)
170 sass (3.4.23)
167 sass-rails (5.0.6)
171 sass-rails (5.0.6)
168 railties (>= 4.0.0, < 6)
172 railties (>= 4.0.0, < 6)
169 sass (~> 3.1)
173 sass (~> 3.1)
170 sprockets (>= 2.8, < 4.0)
174 sprockets (>= 2.8, < 4.0)
171 sprockets-rails (>= 2.0, < 4.0)
175 sprockets-rails (>= 2.0, < 4.0)
172 tilt (>= 1.1, < 3)
176 tilt (>= 1.1, < 3)
173 select2-rails (4.0.3)
177 select2-rails (4.0.3)
174 thor (~> 0.14)
178 thor (~> 0.14)
175 sexp_processor (4.7.0)
179 sexp_processor (4.7.0)
176 sprockets (3.7.1)
180 sprockets (3.7.1)
177 concurrent-ruby (~> 1.0)
181 concurrent-ruby (~> 1.0)
178 rack (> 1, < 3)
182 rack (> 1, < 3)
179 sprockets-rails (3.2.0)
183 sprockets-rails (3.2.0)
180 actionpack (>= 4.0)
184 actionpack (>= 4.0)
181 activesupport (>= 4.0)
185 activesupport (>= 4.0)
182 sprockets (>= 3.0.0)
186 sprockets (>= 3.0.0)
183 sqlite3 (1.3.12)
187 sqlite3 (1.3.12)
184 thor (0.19.4)
188 thor (0.19.4)
185 thread_safe (0.3.5)
189 thread_safe (0.3.5)
186 tilt (2.0.5)
190 tilt (2.0.5)
187 tzinfo (1.2.2)
191 tzinfo (1.2.2)
188 thread_safe (~> 0.1)
192 thread_safe (~> 0.1)
189 uglifier (3.0.4)
193 uglifier (3.0.4)
190 execjs (>= 0.3.0, < 3)
194 execjs (>= 0.3.0, < 3)
191 will_paginate (3.0.12)
195 will_paginate (3.0.12)
192 yaml_db (0.4.2)
196 yaml_db (0.4.2)
193 rails (>= 3.0, < 5.1)
197 rails (>= 3.0, < 5.1)
194 rake (>= 0.8.7)
198 rake (>= 0.8.7)
195
199
196 PLATFORMS
200 PLATFORMS
197 ruby
201 ruby
198
202
199 DEPENDENCIES
203 DEPENDENCIES
200 ace-rails-ap
204 ace-rails-ap
201 activerecord-session_store
205 activerecord-session_store
202 autoprefixer-rails
206 autoprefixer-rails
203 best_in_place (~> 3.0.1)
207 best_in_place (~> 3.0.1)
208 + bootstrap-datepicker-rails
204 bootstrap-sass (~> 3.2.0)
209 bootstrap-sass (~> 3.2.0)
205 bootstrap-switch-rails
210 bootstrap-switch-rails
206 bootstrap-toggle-rails
211 bootstrap-toggle-rails
212 + bootstrap3-datetimepicker-rails
207 coffee-rails
213 coffee-rails
208 dynamic_form
214 dynamic_form
209 fuzzy-string-match
215 fuzzy-string-match
210 haml
216 haml
211 haml-rails
217 haml-rails
212 in_place_editing
218 in_place_editing
213 jquery-countdown-rails
219 jquery-countdown-rails
214 jquery-rails
220 jquery-rails
215 jquery-tablesorter
221 jquery-tablesorter
216 jquery-timepicker-addon-rails
222 jquery-timepicker-addon-rails
217 jquery-ui-rails
223 jquery-ui-rails
218 mail
224 mail
219 minitest-reporters
225 minitest-reporters
220 momentjs-rails
226 momentjs-rails
221 mysql2
227 mysql2
222 rails (~> 4.2.0)
228 rails (~> 4.2.0)
223 rails_bootstrap_sortable
229 rails_bootstrap_sortable
224 rdiscount
230 rdiscount
225 rouge
231 rouge
226 sass-rails
232 sass-rails
227 select2-rails
233 select2-rails
228 sqlite3
234 sqlite3
229 uglifier
235 uglifier
230 verification!
236 verification!
231 will_paginate (~> 3.0.7)
237 will_paginate (~> 3.0.7)
232 yaml_db
238 yaml_db
233
239
234 BUNDLED WITH
240 BUNDLED WITH
235 1.13.6
241 1.13.6
@@ -1,41 +1,43
1 // This is a manifest file that'll be compiled into application.js, which will include all the files
1 // This is a manifest file that'll be compiled into application.js, which will include all the files
2 // listed below.
2 // listed below.
3 //
3 //
4 // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
4 // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
5 // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 //
6 //
7 // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
7 // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 // the compiled file.
8 // the compiled file.
9 //
9 //
10 // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
10 // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11 // GO AFTER THE REQUIRES BELOW.
11 // GO AFTER THE REQUIRES BELOW.
12 //
12 //
13 //= require jquery
13 //= require jquery
14 //= require jquery_ujs
14 //= require jquery_ujs
15 //= require jquery-ui
15 //= require jquery-ui
16 //= require bootstrap-sprockets
16 //= require bootstrap-sprockets
17 //= require moment
17 //= require moment
18 //= require bootstrap-sortable
18 //= require bootstrap-sortable
19 //= require select2
19 //= require select2
20 //= require ace-rails-ap
20 //= require ace-rails-ap
21 //= require ace/mode-c_cpp
21 //= require ace/mode-c_cpp
22 //= require ace/mode-python
22 //= require ace/mode-python
23 //= require ace/mode-ruby
23 //= require ace/mode-ruby
24 //= require ace/mode-pascal
24 //= require ace/mode-pascal
25 //= require ace/mode-javascript
25 //= require ace/mode-javascript
26 //= require ace/mode-java
26 //= require ace/mode-java
27 //= require ace/theme-merbivore
27 //= require ace/theme-merbivore
28 //= require custom
28 //= require custom
29 //= require jquery.countdown
29 //= require jquery.countdown
30 //-------------- addition from local_jquery -----------
30 //-------------- addition from local_jquery -----------
31 //= require jquery-tablesorter
31 //= require jquery-tablesorter
32 //= require best_in_place
32 //= require best_in_place
33 //= require best_in_place.jquery-ui
33 //= require best_in_place.jquery-ui
34 //= require brython
34 //= require brython
35 + //= require bootstrap-datepicker
36 + //= require bootstrap-datetimepicker
35
37
36 // since this is after blank line, it is not downloaded
38 // since this is after blank line, it is not downloaded
37 //x= require prototype
39 //x= require prototype
38 //x= require prototype_ujs
40 //x= require prototype_ujs
39 //x= require effects
41 //x= require effects
40 //x= require dragdrop
42 //x= require dragdrop
41 //x= require controls
43 //x= require controls
@@ -1,83 +1,85
1 /* This is a manifest file that'll be compiled into application.css, which will include all the files
1 /* This is a manifest file that'll be compiled into application.css, which will include all the files
2 * listed below.
2 * listed below.
3 *
3 *
4 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
4 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
5 * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
5 * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
6 *
6 *
7 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
7 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
8 * compiled file so the styles you add here take precedence over styles defined in any styles
8 * compiled file so the styles you add here take precedence over styles defined in any styles
9 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
9 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
10 * file per style scope.
10 * file per style scope.
11 *
11 *
12 * // bootstrap says that we should not do this, but @import each file instead
12 * // bootstrap says that we should not do this, but @import each file instead
13 * # *= require_tree .
13 * # *= require_tree .
14 * # *= require_self
14 * # *= require_self
15 */
15 */
16
16
17 @import "jquery-ui";
17 @import "jquery-ui";
18 //@import "jquery.ui.core";
18 //@import "jquery.ui.core";
19 //@import "jquery.ui.theme";
19 //@import "jquery.ui.theme";
20 //@import "jquery.ui.datepicker";
20 //@import "jquery.ui.datepicker";
21 //@import "jquery.ui.slider";
21 //@import "jquery.ui.slider";
22 @import "jquery-ui-timepicker-addon";
22 @import "jquery-ui-timepicker-addon";
23 @import "jquery-tablesorter/theme.metro-dark";
23 @import "jquery-tablesorter/theme.metro-dark";
24 @import "jquery.countdown";
24 @import "jquery.countdown";
25 @import "tablesorter-theme.cafe";
25 @import "tablesorter-theme.cafe";
26
26
27 //bootstrap
27 //bootstrap
28 @import "bootstrap-sprockets";
28 @import "bootstrap-sprockets";
29 @import "bootstrap";
29 @import "bootstrap";
30 @import "select2";
30 @import "select2";
31 @import "select2-bootstrap";
31 @import "select2-bootstrap";
32
32
33 //@import bootstrap3-switch
33 //@import bootstrap3-switch
34 @import "bootstrap-toggle";
34 @import "bootstrap-toggle";
35 @import "bootstrap-sortable";
35 @import "bootstrap-sortable";
36 + @import "bootstrap-datepicker3";
37 + @import "bootstrap-datetimepicker";
36
38
37 //bootstrap navbar color (from)
39 //bootstrap navbar color (from)
38 $bgDefault: #19197b;
40 $bgDefault: #19197b;
39 $bgHighlight: #06064b;
41 $bgHighlight: #06064b;
40 $colDefault: #8e8eb4;
42 $colDefault: #8e8eb4;
41 $colHighlight: #ffffff;
43 $colHighlight: #ffffff;
42 $dropDown: false;
44 $dropDown: false;
43
45
44 @font-face {
46 @font-face {
45 font-family: 'Glyphicons Halflings';
47 font-family: 'Glyphicons Halflings';
46 src: font-path('bootstrap/glyphicons-halflings-regular.eot');
48 src: font-path('bootstrap/glyphicons-halflings-regular.eot');
47 src: font-path('bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
49 src: font-path('bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
48 font-path('bootstrap/glyphicons-halflings-regular.woff') format('woff'),
50 font-path('bootstrap/glyphicons-halflings-regular.woff') format('woff'),
49 font-path('bootstrap/glyphicons-halflings-regular.ttf') format('truetype'),
51 font-path('bootstrap/glyphicons-halflings-regular.ttf') format('truetype'),
50 font-path('bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
52 font-path('bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
51 }
53 }
52
54
53
55
54 .navbar-default {
56 .navbar-default {
55 background-color: $bgDefault;
57 background-color: $bgDefault;
56 border-color: $bgHighlight;
58 border-color: $bgHighlight;
57
59
58 .navbar-brand {
60 .navbar-brand {
59 color: $colDefault;
61 color: $colDefault;
60
62
61 &:hover, &:focus {
63 &:hover, &:focus {
62 color: $colHighlight;
64 color: $colHighlight;
63 }
65 }
64 }
66 }
65
67
66 .navbar-text {
68 .navbar-text {
67 color: $colDefault;
69 color: $colDefault;
68 }
70 }
69
71
70 .navbar-nav {
72 .navbar-nav {
71 > li {
73 > li {
72 > a {
74 > a {
73 color: $colDefault;
75 color: $colDefault;
74
76
75 &:hover, &:focus {
77 &:hover, &:focus {
76 color: $colHighlight;
78 color: $colHighlight;
77 }
79 }
78 }
80 }
79
81
80 @if $dropDown {
82 @if $dropDown {
81 > .dropdown-menu {
83 > .dropdown-menu {
82 background-color: $bgDefault;
84 background-color: $bgDefault;
83
85
@@ -213,97 +213,94
213
213
214 redirect_to :action => 'manage'
214 redirect_to :action => 'manage'
215 end
215 end
216
216
217 def import
217 def import
218 @allow_test_pair_import = allow_test_pair_import?
218 @allow_test_pair_import = allow_test_pair_import?
219 end
219 end
220
220
221 def do_import
221 def do_import
222 old_problem = Problem.find_by_name(params[:name])
222 old_problem = Problem.find_by_name(params[:name])
223 if !allow_test_pair_import? and params.has_key? :import_to_db
223 if !allow_test_pair_import? and params.has_key? :import_to_db
224 params.delete :import_to_db
224 params.delete :import_to_db
225 end
225 end
226 @problem, import_log = Problem.create_from_import_form_params(params,
226 @problem, import_log = Problem.create_from_import_form_params(params,
227 old_problem)
227 old_problem)
228
228
229 if !@problem.errors.empty?
229 if !@problem.errors.empty?
230 render :action => 'import' and return
230 render :action => 'import' and return
231 end
231 end
232
232
233 if old_problem!=nil
233 if old_problem!=nil
234 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
234 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
235 end
235 end
236 @log = import_log
236 @log = import_log
237 end
237 end
238
238
239 def remove_contest
239 def remove_contest
240 problem = Problem.find(params[:id])
240 problem = Problem.find(params[:id])
241 contest = Contest.find(params[:contest_id])
241 contest = Contest.find(params[:contest_id])
242 if problem!=nil and contest!=nil
242 if problem!=nil and contest!=nil
243 problem.contests.delete(contest)
243 problem.contests.delete(contest)
244 end
244 end
245 redirect_to :action => 'manage'
245 redirect_to :action => 'manage'
246 end
246 end
247
247
248 ##################################
248 ##################################
249 protected
249 protected
250
250
251 def allow_test_pair_import?
251 def allow_test_pair_import?
252 if defined? ALLOW_TEST_PAIR_IMPORT
252 if defined? ALLOW_TEST_PAIR_IMPORT
253 return ALLOW_TEST_PAIR_IMPORT
253 return ALLOW_TEST_PAIR_IMPORT
254 else
254 else
255 return false
255 return false
256 end
256 end
257 end
257 end
258
258
259 def change_date_added
259 def change_date_added
260 problems = get_problems_from_params
260 problems = get_problems_from_params
261 - year = params[:date_added][:year].to_i
261 + date = Date.parse(params[:date_added])
262 - month = params[:date_added][:month].to_i
263 - day = params[:date_added][:day].to_i
264 - date = Date.new(year,month,day)
265 problems.each do |p|
262 problems.each do |p|
266 p.date_added = date
263 p.date_added = date
267 p.save
264 p.save
268 end
265 end
269 end
266 end
270
267
271 def add_to_contest
268 def add_to_contest
272 problems = get_problems_from_params
269 problems = get_problems_from_params
273 contest = Contest.find(params[:contest][:id])
270 contest = Contest.find(params[:contest][:id])
274 if contest!=nil and contest.enabled
271 if contest!=nil and contest.enabled
275 problems.each do |p|
272 problems.each do |p|
276 p.contests << contest
273 p.contests << contest
277 end
274 end
278 end
275 end
279 end
276 end
280
277
281 def set_available(avail)
278 def set_available(avail)
282 problems = get_problems_from_params
279 problems = get_problems_from_params
283 problems.each do |p|
280 problems.each do |p|
284 p.available = avail
281 p.available = avail
285 p.save
282 p.save
286 end
283 end
287 end
284 end
288
285
289 def get_problems_from_params
286 def get_problems_from_params
290 problems = []
287 problems = []
291 params.keys.each do |k|
288 params.keys.each do |k|
292 if k.index('prob-')==0
289 if k.index('prob-')==0
293 name, id, order = k.split('-')
290 name, id, order = k.split('-')
294 problems << Problem.find(id)
291 problems << Problem.find(id)
295 end
292 end
296 end
293 end
297 problems
294 problems
298 end
295 end
299
296
300 def get_problems_stat
297 def get_problems_stat
301 end
298 end
302
299
303 private
300 private
304
301
305 def problem_params
302 def problem_params
306 params.require(:problem).permit(:name, :full_name, :full_score, :date_added, :available, :test_allowed,:output_only, :url, :description)
303 params.require(:problem).permit(:name, :full_name, :full_score, :date_added, :available, :test_allowed,:output_only, :url, :description)
307 end
304 end
308
305
309 end
306 end
@@ -2,93 +2,106
2 = stylesheet_link_tag 'problems'
2 = stylesheet_link_tag 'problems'
3 = javascript_include_tag 'local_jquery'
3 = javascript_include_tag 'local_jquery'
4
4
5 :javascript
5 :javascript
6 $(document).ready( function() {
6 $(document).ready( function() {
7 function shiftclick(start,stop,value) {
7 function shiftclick(start,stop,value) {
8 $('tr input').each( function(id,input) {
8 $('tr input').each( function(id,input) {
9 var $input=$(input);
9 var $input=$(input);
10 var iid=parseInt($input.attr('id').split('-')[2]);
10 var iid=parseInt($input.attr('id').split('-')[2]);
11 if(iid>=start&&iid<=stop){
11 if(iid>=start&&iid<=stop){
12 $input.prop('checked',value)
12 $input.prop('checked',value)
13 }
13 }
14 });
14 });
15 }
15 }
16
16
17 $('tr input').click( function(e) {
17 $('tr input').click( function(e) {
18 if (e.shiftKey) {
18 if (e.shiftKey) {
19 stop = parseInt($(this).attr('id').split('-')[2]);
19 stop = parseInt($(this).attr('id').split('-')[2]);
20 var orig_stop = stop
20 var orig_stop = stop
21 if (typeof start !== 'undefined') {
21 if (typeof start !== 'undefined') {
22 if (start > stop) {
22 if (start > stop) {
23 var tmp = start;
23 var tmp = start;
24 start = stop;
24 start = stop;
25 stop = tmp;
25 stop = tmp;
26 }
26 }
27 shiftclick(start,stop,$(this).is(':checked') )
27 shiftclick(start,stop,$(this).is(':checked') )
28 }
28 }
29 start = orig_stop
29 start = orig_stop
30 } else {
30 } else {
31 start = parseInt($(this).attr('id').split('-')[2]);
31 start = parseInt($(this).attr('id').split('-')[2]);
32 }
32 }
33 });
33 });
34 });
34 });
35
35
36
36
37 %h1 Manage problems
37 %h1 Manage problems
38
38
39 %p= link_to '[Back to problem list]', problems_path
39 %p= link_to '[Back to problem list]', problems_path
40
40
41 = form_tag :action=>'do_manage' do
41 = form_tag :action=>'do_manage' do
42 .panel.panel-primary
42 .panel.panel-primary
43 .panel-heading
43 .panel-heading
44 Action
44 Action
45 .panel-body
45 .panel-body
46 .submit-box
46 .submit-box
47 What do you want to do to the selected problem?
47 What do you want to do to the selected problem?
48 %br/
48 %br/
49 (You can shift-click to select a range of problems)
49 (You can shift-click to select a range of problems)
50 - %ul
50 + %ul.form-inline
51 %li
51 %li
52 Change date added to
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 &nbsp;&nbsp;&nbsp;
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 %li
60 %li
57 Set available to
61 Set available to
58 - = submit_tag 'True', :name => 'enable_problem', class: 'btn btn-default'
62 + = submit_tag 'True', :name => 'enable_problem', class: 'btn btn-primary btn-sm'
59 - = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-default'
63 + = submit_tag 'False', :name => 'disable_problem', class: 'btn btn-primary btn-sm'
60
64
61 - if GraderConfiguration.multicontests?
65 - if GraderConfiguration.multicontests?
62 %li
66 %li
63 Add to
67 Add to
64 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
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 %li
70 %li
67 Add problems to group
71 Add problems to group
68 = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2'
72 = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2'
69 = submit_tag 'Add', name: 'add_group', class: 'btn btn-default'
73 = submit_tag 'Add', name: 'add_group', class: 'btn btn-default'
70
74
71
75
72 %table.table.table-hover
76 %table.table.table-hover
73 %tr{style: "text-align: left;"}
77 %tr{style: "text-align: left;"}
74 %th= check_box_tag 'select_all'
78 %th= check_box_tag 'select_all'
75 %th Name
79 %th Name
76 %th Full name
80 %th Full name
77 %th Available
81 %th Available
78 %th Date added
82 %th Date added
79 - if GraderConfiguration.multicontests?
83 - if GraderConfiguration.multicontests?
80 %th Contests
84 %th Contests
81
85
82 - num = 0
86 - num = 0
83 - for problem in @problems
87 - for problem in @problems
84 - num += 1
88 - num += 1
85 %tr{:id => "row-prob-#{problem.id}", :name=> "prob-#{problem.id}"}
89 %tr{:id => "row-prob-#{problem.id}", :name=> "prob-#{problem.id}"}
86 %td= check_box_tag "prob-#{problem.id}-#{num}"
90 %td= check_box_tag "prob-#{problem.id}-#{num}"
87 %td= problem.name
91 %td= problem.name
88 %td= problem.full_name
92 %td= problem.full_name
89 %td= problem.available
93 %td= problem.available
90 %td= problem.date_added
94 %td= problem.date_added
91 - if GraderConfiguration.multicontests?
95 - if GraderConfiguration.multicontests?
92 %td
96 %td
93 - problem.contests.each do |contest|
97 - problem.contests.each do |contest|
94 = "(#{contest.name} [#{link_to 'x', :action => 'remove_contest', :id => problem.id, :contest_id => contest.id }])"
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 %h1 Editing site
1 %h1 Editing site
2 = error_messages_for :site
2 = error_messages_for :site
3 = form_for(@site) do |f|
3 = form_for(@site) do |f|
4 - %p
4 + .row
5 - %b Name
5 + .col-md-4
6 - %br/
6 + .form-group.field
7 - = f.text_field :name
7 + = f.label :name, "Name"
8 - %p
8 + = f.text_field :name, class: 'form-control'
9 - %b Password
9 + .form-group.field
10 - %br/
10 + = f.label :password, "Password"
11 - = f.text_field :password
11 + = f.text_field :password, class: 'form-control'
12 - %p
12 + .form-group.field
13 - %b Started
13 + = f.label :started, "Started"
14 - %br/
14 + = f.check_box :started, class: 'form-control'
15 - = f.check_box :started
15 + .form-group.field
16 - %p
16 + = f.label :start_time, "Start time"
17 - %b Start time
17 + -# = f.datetime_select :start_time, :include_blank => true
18 - %br/
18 + .input-group.date
19 - = f.datetime_select :start_time, :include_blank => true
19 + = f.text_field :start_time, class:'form-control' , value: (@site.start_time ? @site.start_time.strftime('%d/%b/%Y %H:%M') : '')
20 - %p
20 + %span.input-group-addon
21 - = f.submit "Update"
21 + %span.glyphicon.glyphicon-calendar
22 + .actions
23 + = f.submit "Update", class: 'btn btn-primary'
24 + .col-md-8
25 +
22 = link_to 'Show', @site
26 = link_to 'Show', @site
23 |
27 |
24 = link_to 'Back', sites_path
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