date_time_picker 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. data/README.rdoc +50 -0
  2. data/lib/date_time_picker/date_time_picker_helpers.rb +78 -0
  3. data/lib/date_time_picker.rb +6 -3
  4. data/test/.gitignore +2 -0
  5. data/test/Rakefile +7 -0
  6. data/test/app/assets/stylesheets/jquery-ui.css +418 -0
  7. data/test/app/controllers/application_controller.rb +5 -0
  8. data/test/app/views/application/1.html.erb +1 -0
  9. data/test/app/views/layouts/application.html.erb +12 -0
  10. data/test/config/application.rb +12 -0
  11. data/test/config/boot.rb +3 -0
  12. data/test/config/date_time_picker.yml +1 -0
  13. data/test/config/environment.rb +5 -0
  14. data/test/config/environments/test.rb +7 -0
  15. data/test/config/routes.rb +3 -0
  16. data/test/config.ru +4 -0
  17. data/test/script/rails +6 -0
  18. data/test/spec/application_spec.rb +13 -0
  19. data/test/spec/spec_helper.rb +5 -0
  20. data/vendor/assets/i18n/date_time_picker_ca.js +43 -0
  21. data/vendor/assets/i18n/date_time_picker_cs.js +43 -0
  22. data/vendor/assets/i18n/date_time_picker_de.js +43 -0
  23. data/vendor/assets/i18n/date_time_picker_el.js +42 -0
  24. data/vendor/assets/i18n/date_time_picker_es.js +42 -0
  25. data/vendor/assets/i18n/date_time_picker_et.js +42 -0
  26. data/vendor/assets/i18n/date_time_picker_fi.js +43 -0
  27. data/vendor/assets/i18n/date_time_picker_fr.js +45 -0
  28. data/vendor/assets/i18n/date_time_picker_gl.js +42 -0
  29. data/vendor/assets/i18n/date_time_picker_he.js +43 -0
  30. data/vendor/assets/i18n/date_time_picker_hu.js +43 -0
  31. data/vendor/assets/i18n/date_time_picker_id.js +42 -0
  32. data/vendor/assets/i18n/date_time_picker_it.js +43 -0
  33. data/vendor/assets/i18n/date_time_picker_ja.js +42 -0
  34. data/vendor/assets/i18n/date_time_picker_ko.js +42 -0
  35. data/vendor/assets/i18n/date_time_picker_lt.js +42 -0
  36. data/vendor/assets/i18n/date_time_picker_nl.js +42 -0
  37. data/vendor/assets/i18n/date_time_picker_no.js +43 -0
  38. data/vendor/assets/i18n/date_time_picker_pl.js +43 -0
  39. data/vendor/assets/i18n/date_time_picker_pt-BR.js +42 -0
  40. data/vendor/assets/i18n/date_time_picker_pt.js +41 -0
  41. data/vendor/assets/i18n/date_time_picker_ro.js +46 -0
  42. data/vendor/assets/i18n/date_time_picker_ru.js +42 -0
  43. data/vendor/assets/i18n/date_time_picker_sk.js +43 -0
  44. data/vendor/assets/i18n/date_time_picker_sv.js +43 -0
  45. data/vendor/assets/i18n/date_time_picker_tr.js +42 -0
  46. data/vendor/assets/i18n/date_time_picker_vi.js +43 -0
  47. data/vendor/assets/i18n/date_time_picker_zh-CN.js +43 -0
  48. data/vendor/assets/i18n/date_time_picker_zh-TW.js +43 -0
  49. data/vendor/assets/javascripts/date_time_picker.js +19 -0
  50. data/vendor/assets/javascripts/date_time_picker_all.js +1 -0
  51. data/vendor/assets/javascripts/jquery-ui-sliderAccess.js +85 -0
  52. data/vendor/assets/stylesheets/date_time_picker.css +1 -0
  53. data/vendor/assets/timepicker/jquery-ui-timepicker-addon.css +6 -0
  54. data/vendor/assets/timepicker/jquery-ui-timepicker-addon.js +1326 -0
  55. metadata +112 -23
  56. data/README +0 -0
  57. data/changelog +0 -18
  58. data/date_time_picker.gemspec +0 -36
  59. data/knownbugs +0 -18
  60. data/lib/date_time_picker/date_time_picker_helper.rb +0 -2
  61. data/roadmap +0 -17
  62. data/spec/lib/date_time_picker_spec.rb +0 -8
  63. data/spec/spec.opts +0 -2
  64. data/spec/spec_helper.rb +0 -26
  65. data/tasks/date_time_picker_tasks.rake +0 -4
data/README.rdoc ADDED
@@ -0,0 +1,50 @@
1
+ = DateTimePicker
2
+
3
+ A library allows to select date and time, which uses jQuery UI.
4
+
5
+ == Requirements
6
+
7
+ You should have +jquery-rails+ gem installed and require +jquery+ and +jquery-ui+ assets (don't forget to require CSS for your jQuery UI).
8
+
9
+ == Installation
10
+
11
+ Add this to your Gemfile and run the +bundle+ command
12
+
13
+ gem 'date_time_picker'
14
+
15
+ == I18n
16
+
17
+ By default plugin includes most using locales and you can require them from your application.js or using the helper, but if you want to add your locales
18
+ or/and change one of them, then just put them into your assets dir.
19
+
20
+ == Usage
21
+
22
+ To add necessary assets add into your head
23
+
24
+ <%= date_time_picker_assets %>
25
+
26
+ Or you can add them manually by requiring +date_time_picker+ and +date_time_picker_locale+
27
+
28
+ To use the picker inside the form
29
+
30
+ <%= f.date_time_picker :datetime %>
31
+
32
+ To use it outside the form
33
+
34
+ <%= date_time_picker :datetime %>
35
+
36
+ To specify special options add them into the end
37
+
38
+ <%= t.date_time_picker :datetime, :id => 'input_id', :class => [:class_1, :class_2], :ampm => true %>
39
+
40
+ The full list of available options you can find on the {jQuery UI Datepicker docs}[http://docs.jquery.com/UI/Datepicker] and {jQuery UI Timepicker}[http://trentrichardson.com/examples/timepicker/].
41
+
42
+ By default plugin uses app locale, but if you want to specify it manually you can do this
43
+
44
+ <%= t.date_time_picker :datetime, :locale => :ru %>
45
+
46
+ Also available
47
+
48
+ <%= date_picker :date_only %>
49
+
50
+ <%= time_picker :time_only %>
@@ -0,0 +1,78 @@
1
+ module DateTimePicker
2
+ module ViewHelpers
3
+
4
+ def self.helper(name, template, method, options) # :nodoc:
5
+ value = options.delete :value
6
+ id = options.delete :id
7
+ classes = options.delete :class
8
+ case classes
9
+ when NilClass
10
+ classes = method
11
+ when Array
12
+ classes << method
13
+ else
14
+ classes = [classes, method]
15
+ end
16
+ locale = options.delete :locale
17
+ locale ||= I18n.locale
18
+ template.text_field_tag name, value, :id => id, :class => classes, :data => {:locale => locale, :options => options.to_json}
19
+ end
20
+
21
+ def self.restore_args(args, method)
22
+ case args.count
23
+ when 1
24
+ name = args[0]
25
+ options = {}
26
+ when 2
27
+ name = args[0]
28
+ options = args[1]
29
+ else
30
+ raise ArgumentError.new(args.count)
31
+ end
32
+ method = method.to_s.gsub '_', ''
33
+ return name, options, method
34
+ end
35
+
36
+ module FormHelpers
37
+
38
+ def self.included(base)
39
+ ['date_time_picker', 'date_picker', 'time_picker'].each do |method|
40
+ base.send :define_method, method do |*args|
41
+ name, options, method = ViewHelpers.restore_args(args, __method__)
42
+ options[:id] ||= "#{object_name}_#{name}"
43
+ ViewHelpers.helper("#{object_name}[#{name}]", @template, method, options)
44
+ end
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+ module TagHelpers
51
+
52
+ def self.included(base)
53
+ ['date_time_picker', 'date_picker', 'time_picker'].each do |method|
54
+ base.send :define_method, method do |*args|
55
+ name, options, method = ViewHelpers.restore_args(args, __method__)
56
+ ViewHelpers.helper(name, self, method, options)
57
+ end
58
+ end
59
+ end
60
+
61
+ end
62
+
63
+ module AssetsHelper
64
+
65
+ def date_time_picker_assets(locale = I18n.locale)
66
+ javascript_include_tag(:date_time_picker_all) + stylesheet_link_tag(:date_time_picker)
67
+ end
68
+
69
+ end
70
+
71
+ end
72
+ end
73
+
74
+ module ActionView # :nodoc:
75
+ Helpers::FormBuilder.send :include, DateTimePicker::ViewHelpers::FormHelpers
76
+ Base.send :include, DateTimePicker::ViewHelpers::TagHelpers
77
+ Base.send :include, DateTimePicker::ViewHelpers::AssetsHelper
78
+ end
@@ -1,6 +1,9 @@
1
- require 'date_time_picker/date_time_picker_helper'
2
-
3
- module DateTimePicker
1
+ # :main: README.rdoc
4
2
 
3
+ module DateTimePicker # :nodoc:
4
+ DIR = File.expand_path(File.dirname(__FILE__)) # :nodoc:
5
+ class Engine < ::Rails::Engine # :nodoc:
6
+ end
5
7
  end
6
8
 
9
+ require File.join(DateTimePicker::DIR, 'date_time_picker', 'date_time_picker_helpers')
data/test/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ /log
2
+ /tmp
data/test/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require 'rspec/core/rake_task'
4
+ task :default => :spec
5
+ RSpec::Core::RakeTask.new do |t|
6
+ t.pattern = File.expand_path 'spec/*_spec.rb'
7
+ end
@@ -0,0 +1,418 @@
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.16
46
+ *
47
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
63
+ .ui-widget-content a { color: #333333; }
64
+ .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
65
+ .ui-widget-header a { color: #ffffff; }
66
+
67
+ /* Interaction states
68
+ ----------------------------------*/
69
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
70
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
71
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
72
+ .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
73
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
74
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
75
+ .ui-widget :active { outline: none; }
76
+
77
+ /* Interaction Cues
78
+ ----------------------------------*/
79
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
80
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
81
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
82
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
83
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
84
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
85
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
86
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
87
+
88
+ /* Icons
89
+ ----------------------------------*/
90
+
91
+ /* states and images */
92
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
93
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
94
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
95
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
96
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
97
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
98
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
99
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
100
+
101
+ /* positioning */
102
+ .ui-icon-carat-1-n { background-position: 0 0; }
103
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
104
+ .ui-icon-carat-1-e { background-position: -32px 0; }
105
+ .ui-icon-carat-1-se { background-position: -48px 0; }
106
+ .ui-icon-carat-1-s { background-position: -64px 0; }
107
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
108
+ .ui-icon-carat-1-w { background-position: -96px 0; }
109
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
110
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
111
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
112
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
113
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
114
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
115
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
116
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
117
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
118
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
119
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
120
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
121
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
122
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
123
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
124
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
125
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
126
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
127
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
128
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
129
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
130
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
131
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
132
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
133
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
134
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
135
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
136
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
137
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
138
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
139
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
140
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
141
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
142
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
143
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
144
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
145
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
146
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
147
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
148
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
149
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
150
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
151
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
152
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
153
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
154
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
155
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
156
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
157
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
158
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
159
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
160
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
161
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
162
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
163
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
164
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
165
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
166
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
167
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
168
+ .ui-icon-extlink { background-position: -32px -80px; }
169
+ .ui-icon-newwin { background-position: -48px -80px; }
170
+ .ui-icon-refresh { background-position: -64px -80px; }
171
+ .ui-icon-shuffle { background-position: -80px -80px; }
172
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
173
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
174
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
175
+ .ui-icon-folder-open { background-position: -16px -96px; }
176
+ .ui-icon-document { background-position: -32px -96px; }
177
+ .ui-icon-document-b { background-position: -48px -96px; }
178
+ .ui-icon-note { background-position: -64px -96px; }
179
+ .ui-icon-mail-closed { background-position: -80px -96px; }
180
+ .ui-icon-mail-open { background-position: -96px -96px; }
181
+ .ui-icon-suitcase { background-position: -112px -96px; }
182
+ .ui-icon-comment { background-position: -128px -96px; }
183
+ .ui-icon-person { background-position: -144px -96px; }
184
+ .ui-icon-print { background-position: -160px -96px; }
185
+ .ui-icon-trash { background-position: -176px -96px; }
186
+ .ui-icon-locked { background-position: -192px -96px; }
187
+ .ui-icon-unlocked { background-position: -208px -96px; }
188
+ .ui-icon-bookmark { background-position: -224px -96px; }
189
+ .ui-icon-tag { background-position: -240px -96px; }
190
+ .ui-icon-home { background-position: 0 -112px; }
191
+ .ui-icon-flag { background-position: -16px -112px; }
192
+ .ui-icon-calendar { background-position: -32px -112px; }
193
+ .ui-icon-cart { background-position: -48px -112px; }
194
+ .ui-icon-pencil { background-position: -64px -112px; }
195
+ .ui-icon-clock { background-position: -80px -112px; }
196
+ .ui-icon-disk { background-position: -96px -112px; }
197
+ .ui-icon-calculator { background-position: -112px -112px; }
198
+ .ui-icon-zoomin { background-position: -128px -112px; }
199
+ .ui-icon-zoomout { background-position: -144px -112px; }
200
+ .ui-icon-search { background-position: -160px -112px; }
201
+ .ui-icon-wrench { background-position: -176px -112px; }
202
+ .ui-icon-gear { background-position: -192px -112px; }
203
+ .ui-icon-heart { background-position: -208px -112px; }
204
+ .ui-icon-star { background-position: -224px -112px; }
205
+ .ui-icon-link { background-position: -240px -112px; }
206
+ .ui-icon-cancel { background-position: 0 -128px; }
207
+ .ui-icon-plus { background-position: -16px -128px; }
208
+ .ui-icon-plusthick { background-position: -32px -128px; }
209
+ .ui-icon-minus { background-position: -48px -128px; }
210
+ .ui-icon-minusthick { background-position: -64px -128px; }
211
+ .ui-icon-close { background-position: -80px -128px; }
212
+ .ui-icon-closethick { background-position: -96px -128px; }
213
+ .ui-icon-key { background-position: -112px -128px; }
214
+ .ui-icon-lightbulb { background-position: -128px -128px; }
215
+ .ui-icon-scissors { background-position: -144px -128px; }
216
+ .ui-icon-clipboard { background-position: -160px -128px; }
217
+ .ui-icon-copy { background-position: -176px -128px; }
218
+ .ui-icon-contact { background-position: -192px -128px; }
219
+ .ui-icon-image { background-position: -208px -128px; }
220
+ .ui-icon-video { background-position: -224px -128px; }
221
+ .ui-icon-script { background-position: -240px -128px; }
222
+ .ui-icon-alert { background-position: 0 -144px; }
223
+ .ui-icon-info { background-position: -16px -144px; }
224
+ .ui-icon-notice { background-position: -32px -144px; }
225
+ .ui-icon-help { background-position: -48px -144px; }
226
+ .ui-icon-check { background-position: -64px -144px; }
227
+ .ui-icon-bullet { background-position: -80px -144px; }
228
+ .ui-icon-radio-off { background-position: -96px -144px; }
229
+ .ui-icon-radio-on { background-position: -112px -144px; }
230
+ .ui-icon-pin-w { background-position: -128px -144px; }
231
+ .ui-icon-pin-s { background-position: -144px -144px; }
232
+ .ui-icon-play { background-position: 0 -160px; }
233
+ .ui-icon-pause { background-position: -16px -160px; }
234
+ .ui-icon-seek-next { background-position: -32px -160px; }
235
+ .ui-icon-seek-prev { background-position: -48px -160px; }
236
+ .ui-icon-seek-end { background-position: -64px -160px; }
237
+ .ui-icon-seek-start { background-position: -80px -160px; }
238
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
239
+ .ui-icon-seek-first { background-position: -80px -160px; }
240
+ .ui-icon-stop { background-position: -96px -160px; }
241
+ .ui-icon-eject { background-position: -112px -160px; }
242
+ .ui-icon-volume-off { background-position: -128px -160px; }
243
+ .ui-icon-volume-on { background-position: -144px -160px; }
244
+ .ui-icon-power { background-position: 0 -176px; }
245
+ .ui-icon-signal-diag { background-position: -16px -176px; }
246
+ .ui-icon-signal { background-position: -32px -176px; }
247
+ .ui-icon-battery-0 { background-position: -48px -176px; }
248
+ .ui-icon-battery-1 { background-position: -64px -176px; }
249
+ .ui-icon-battery-2 { background-position: -80px -176px; }
250
+ .ui-icon-battery-3 { background-position: -96px -176px; }
251
+ .ui-icon-circle-plus { background-position: 0 -192px; }
252
+ .ui-icon-circle-minus { background-position: -16px -192px; }
253
+ .ui-icon-circle-close { background-position: -32px -192px; }
254
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
255
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
256
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
257
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
258
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
259
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
260
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
261
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
262
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
263
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
264
+ .ui-icon-circle-check { background-position: -208px -192px; }
265
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
266
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
267
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
268
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
269
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
270
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
271
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
272
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
273
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
274
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
275
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
276
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
277
+
278
+
279
+ /* Misc visuals
280
+ ----------------------------------*/
281
+
282
+ /* Corner radius */
283
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
284
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
285
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
286
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
287
+
288
+ /* Overlays */
289
+ .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
290
+ .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
291
+ * jQuery UI Button 1.8.16
292
+ *
293
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
294
+ * Dual licensed under the MIT or GPL Version 2 licenses.
295
+ * http://jquery.org/license
296
+ *
297
+ * http://docs.jquery.com/UI/Button#theming
298
+ */
299
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
300
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
301
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
302
+ .ui-button-icons-only { width: 3.4em; }
303
+ button.ui-button-icons-only { width: 3.7em; }
304
+
305
+ /*button text element */
306
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
307
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
308
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
309
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
310
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
311
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
312
+ /* no icon support for input elements, provide padding by default */
313
+ input.ui-button { padding: .4em 1em; }
314
+
315
+ /*button icon element(s) */
316
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
317
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
318
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
319
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
320
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
321
+
322
+ /*button sets*/
323
+ .ui-buttonset { margin-right: 7px; }
324
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
325
+
326
+ /* workarounds */
327
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
328
+ /*
329
+ * jQuery UI Slider 1.8.16
330
+ *
331
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
332
+ * Dual licensed under the MIT or GPL Version 2 licenses.
333
+ * http://jquery.org/license
334
+ *
335
+ * http://docs.jquery.com/UI/Slider#theming
336
+ */
337
+ .ui-slider { position: relative; text-align: left; }
338
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
339
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
340
+
341
+ .ui-slider-horizontal { height: .8em; }
342
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
343
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
344
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
345
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
346
+
347
+ .ui-slider-vertical { width: .8em; height: 100px; }
348
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
349
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
350
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
351
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
352
+ * jQuery UI Datepicker 1.8.16
353
+ *
354
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
355
+ * Dual licensed under the MIT or GPL Version 2 licenses.
356
+ * http://jquery.org/license
357
+ *
358
+ * http://docs.jquery.com/UI/Datepicker#theming
359
+ */
360
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
361
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
362
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
363
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
364
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
365
+ .ui-datepicker .ui-datepicker-next { right:2px; }
366
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
367
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
368
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
369
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
370
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
371
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
372
+ .ui-datepicker select.ui-datepicker-month,
373
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
374
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
375
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
376
+ .ui-datepicker td { border: 0; padding: 1px; }
377
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
378
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
379
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
380
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
381
+
382
+ /* with multiple calendars */
383
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
384
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
385
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
386
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
387
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
388
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
389
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
390
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
391
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
392
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
393
+
394
+ /* RTL support */
395
+ .ui-datepicker-rtl { direction: rtl; }
396
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
397
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
398
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
399
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
400
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
401
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
402
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
403
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
404
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
405
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
406
+
407
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
408
+ .ui-datepicker-cover {
409
+ display: none; /*sorry for IE5*/
410
+ display/**/: block; /*sorry for IE5*/
411
+ position: absolute; /*must have*/
412
+ z-index: -1; /*must have*/
413
+ filter: mask(); /*must have*/
414
+ top: -4px; /*must have*/
415
+ left: -4px; /*must have*/
416
+ width: 200px; /*must have*/
417
+ height: 200px; /*must have*/
418
+ }
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ def index
3
+ render :action => params[:id]
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ <%= date_time_picker :test %>
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= javascript_include_tag :jquery %>
5
+ <%= javascript_include_tag 'jquery-ui'.to_sym %>
6
+ <%= stylesheet_link_tag 'jquery-ui'.to_sym %>
7
+ <%= date_time_picker_assets %>
8
+ </head>
9
+ <body>
10
+ <%= yield %>
11
+ </body>
12
+ </html>
@@ -0,0 +1,12 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'action_controller/railtie'
4
+ require 'sprockets/railtie'
5
+
6
+ require 'jquery-rails'
7
+ require '../lib/date_time_picker.rb'
8
+
9
+ module App
10
+ class Application < Rails::Application
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+
3
+ ENV['RAILS_ENV'] = 'test'
@@ -0,0 +1 @@
1
+ minDate: 0
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ App::Application.initialize!
@@ -0,0 +1,7 @@
1
+ App::Application.configure do
2
+ config.active_support.deprecation = :stderr
3
+ config.assets.enabled = true
4
+ config.assets.version = '1.0'
5
+ config.secret_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
6
+ config.i18n.default_locale = :ru
7
+ end
@@ -0,0 +1,3 @@
1
+ App::Application.routes.draw do
2
+ match ':id' => "application#index"
3
+ end
data/test/config.ru ADDED
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run App::Application
data/test/script/rails ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby1.8
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'