caboose-cms 0.5.122 → 0.5.123

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/caboose/admin.js +1 -0
  3. data/app/assets/javascripts/caboose/admin_edit_order.js +6 -8
  4. data/app/assets/javascripts/caboose/cart.js +2 -2
  5. data/app/assets/javascripts/caboose/jquery.datetimepicker.js +1925 -0
  6. data/app/assets/javascripts/caboose/model/all.js +1 -0
  7. data/app/assets/javascripts/caboose/model/bound_date.js +10 -3
  8. data/app/assets/javascripts/caboose/model/bound_date_time.js +121 -0
  9. data/app/assets/javascripts/caboose/model/model_binder.js +3 -0
  10. data/app/assets/stylesheets/caboose/admin.css +1 -0
  11. data/app/assets/stylesheets/caboose/jquery.datetimepicker.css +523 -0
  12. data/app/assets/templates/caboose/cart/line_items.jst.ejs +1 -1
  13. data/app/assets/templates/caboose/checkout/line_items.jst.ejs +2 -2
  14. data/app/controllers/caboose/checkout_controller.rb +3 -2
  15. data/app/controllers/caboose/line_items_controller.rb +4 -2
  16. data/app/controllers/caboose/my_account_controller.rb +43 -0
  17. data/app/controllers/caboose/my_account_orders_controller.rb +40 -6
  18. data/app/controllers/caboose/orders_controller.rb +26 -20
  19. data/app/controllers/caboose/products_controller.rb +1 -0
  20. data/app/controllers/caboose/sites_controller.rb +15 -1
  21. data/app/controllers/caboose/users_controller.rb +0 -35
  22. data/app/controllers/caboose/variants_controller.rb +51 -2
  23. data/app/controllers/caboose/vendors_controller.rb +3 -2
  24. data/app/models/caboose/address.rb +9 -1
  25. data/app/models/caboose/line_item.rb +17 -9
  26. data/app/models/caboose/model_binder.rb +63 -0
  27. data/app/models/caboose/order.rb +21 -14
  28. data/app/models/caboose/order_pdf.rb +3 -3
  29. data/app/models/caboose/pending_orders_pdf.rb +1 -1
  30. data/app/models/caboose/product.rb +15 -16
  31. data/app/models/caboose/schema.rb +20 -13
  32. data/app/models/caboose/site.rb +9 -0
  33. data/app/models/caboose/store_config.rb +6 -0
  34. data/app/models/caboose/variant.rb +15 -1
  35. data/app/views/caboose/checkout/_cart.html.erb +3 -3
  36. data/app/views/caboose/checkout/_confirm.html.erb +3 -3
  37. data/app/views/caboose/login/index.html.erb +7 -3
  38. data/app/views/caboose/{users/my_account.html.erb → my_account/index.html.erb} +7 -6
  39. data/app/views/caboose/my_account_orders/edit.html.erb +104 -0
  40. data/app/views/caboose/my_account_orders/index.html.erb +36 -0
  41. data/app/views/caboose/sites/admin_edit.html.erb +2 -0
  42. data/app/views/caboose/variants/admin_edit.html.erb +11 -1
  43. data/app/views/caboose/variants/admin_index.html.erb +5 -2
  44. data/config/routes.rb +7 -2
  45. data/lib/caboose/#Untitled-1# +264 -0
  46. data/lib/caboose/engine.rb +23 -140
  47. data/lib/caboose/version.rb +1 -1
  48. data/lib/tasks/caboose.rake +15 -1
  49. metadata +11 -4
  50. data/app/views/caboose/orders/admin_edit_old.html.erb +0 -155
@@ -11,6 +11,7 @@
11
11
  //= require caboose/model/bound_checkbox_multiple
12
12
  //= require caboose/model/bound_date
13
13
  //= require caboose/model/bound_time
14
+ //= require caboose/model/bound_date_time
14
15
  //= require caboose/model/bound_image
15
16
  //= require caboose/model/bound_s3_image
16
17
  //= require caboose/model/bound_file
@@ -57,9 +57,16 @@ BoundDate = BoundControl.extend({
57
57
  $('#'+this.el).css('z-index', 21);
58
58
  $('#'+this.el).css('position', 'relative');
59
59
  $('#'+this.el).css('background', 'transparent');
60
- $('#'+this.el).datepicker({
61
- onSelect: function() { this2.save(); }
62
- });
60
+ //$('#'+this.el).datepicker({
61
+ // onSelect: function() { this2.save(); }
62
+ //});
63
+ $('#'+this.el).datetimepicker({
64
+ format: 'm/d/Y',
65
+ //formatDate: 'm/d/Y',
66
+ timepicker: false,
67
+ //formatTime: 'g:i a', // 12-hour format without leading zeros + lowercase am/pm
68
+ onSelectDate: function() { this2.save(); }
69
+ });
63
70
  },
64
71
 
65
72
  save: function() {
@@ -0,0 +1,121 @@
1
+
2
+ BoundDateTime = BoundControl.extend({
3
+
4
+ //el: false,
5
+ //model: false,
6
+ //attribute: false,
7
+ //binder: false,
8
+
9
+ width: false,
10
+ save_attempts: 0,
11
+
12
+ init: function(params) {
13
+ for (var thing in params)
14
+ this[thing] = params[thing];
15
+
16
+ this.el = this.el ? this.el : this.model.name.toLowerCase() + '_' + this.model.id + '_' + this.attribute.name;
17
+ $('#'+this.el).wrap($('<div/>')
18
+ .attr('id', this.el + '_container')
19
+ .addClass('mb_container')
20
+ .css('position', 'relative')
21
+ );
22
+ $('#'+this.el+'_container').empty();
23
+ $('#'+this.el+'_container').append($('<input/>')
24
+ .attr('id', this.el)
25
+ .attr('type', 'text')
26
+ .attr('placeholder', this.attribute.fixed_placeholder ? 'empty' : this.attribute.nice_name)
27
+ .css('text-align', this.attribute.align)
28
+ .val(this.attribute.value)
29
+ );
30
+
31
+ if (this.attribute.fixed_placeholder)
32
+ $('#'+this.el+'_container').append($('<div/>').attr('id', this.el + '_placeholder').addClass('mb_placeholder').append($('<span/>').html(this.attribute.nice_name + ': ')));
33
+ if (this.attribute.width) $('#'+this.el).css('width' , this.attribute.width);
34
+ if (this.attribute.fixed_placeholder)
35
+ {
36
+ var w = $('#'+this.el+'_placeholder').outerWidth();
37
+ $('#'+this.el).attr('placeholder', 'empty').css('padding-left', '+=' + w).css('width', '-=' + w);
38
+ }
39
+
40
+ var this2 = this;
41
+ $('#'+this.el).on('keyup', function(e) {
42
+ if (e.keyCode == 27) this2.cancel(); // Escape
43
+ if (e.keyCode == 13) this2.save(); // Enter
44
+
45
+ if ($('#'+this2.el).val() != this2.attribute.value_clean)
46
+ $('#'+this2.el).addClass('mb_dirty');
47
+ else
48
+ $('#'+this2.el).removeClass('mb_dirty');
49
+ });
50
+ $('#'+this.el).on('blur', function() {
51
+ if (this2.save_attempts < 1)
52
+ {
53
+ this2.save_attempts++;
54
+ this2.save();
55
+ }
56
+ });
57
+ $('#'+this.el).css('z-index', 21);
58
+ $('#'+this.el).css('position', 'relative');
59
+ $('#'+this.el).css('background', 'transparent');
60
+ $('#'+this.el).datetimepicker({
61
+ format: 'm/d/Y g:i a',
62
+ formatTime: 'h:i a', // 12-hour format without leading zeros + lowercase am/pm
63
+ step: 15
64
+ });
65
+ },
66
+
67
+ save: function() {
68
+ this.attribute.value = $('#'+this.el).val();
69
+ if (this.attribute.value == this.attribute.value_clean)
70
+ return;
71
+
72
+ this.show_loader();
73
+ var this2 = this;
74
+
75
+ this.model.save(this.attribute, function(resp) {
76
+ this2.save_attempts = 0;
77
+ if (resp.error)
78
+ {
79
+ this2.hide_loader();
80
+ this2.error(resp.error);
81
+ }
82
+ else
83
+ {
84
+ this2.show_check(500);
85
+ $('#'+this2.el).val(this2.attribute.value);
86
+ $('#'+this2.el).removeClass('mb_dirty');
87
+
88
+ if (this2.binder.success)
89
+ this2.binder.success(this2);
90
+ }
91
+ });
92
+ },
93
+
94
+ cancel: function() {
95
+ if (this.attribute.before_cancel) this.attribute.before_cancel();
96
+ this.attribute.value = this.attribute.value_clean;
97
+ $('#'+this.el).val(this.attribute.value);
98
+ $('#'+this.el).removeClass('mb_dirty');
99
+
100
+ if ($('#'+this.el+'_check').length)
101
+ this.hide_check();
102
+
103
+ if (this.attribute.after_cancel) this.attribute.after_cancel();
104
+ },
105
+
106
+ error: function(str) {
107
+ if (!$('#'+this.el+'_message').length)
108
+ {
109
+ $('#'+this.el+'_container').append($('<div/>')
110
+ .attr('id', this.el + '_message')
111
+ .css('width', $('#'+this.el).outerWidth())
112
+ );
113
+ }
114
+ $('#'+this.el+'_message').hide();
115
+ $('#'+this.el+'_message').html("<p class='note error'>" + str + "</p>");
116
+ $('#'+this.el+'_message').slideDown();
117
+ var this2 = this;
118
+ setTimeout(function() { $('#'+this2.el+'_message').slideUp(function() { $(this).empty(); }); }, 3000);
119
+ }
120
+
121
+ });
@@ -103,6 +103,9 @@ ModelBinder.prototype = {
103
103
 
104
104
  if (attrib.type == 'text') control = new BoundText(opts);
105
105
  else if (attrib.type == 'color') control = new BoundColor(opts);
106
+ else if (attrib.type == 'datetime') control = new BoundDateTime(opts);
107
+ else if (attrib.type == 'date-time') control = new BoundDateTime(opts);
108
+ else if (attrib.type == 'date_time') control = new BoundDateTime(opts);
106
109
  else if (attrib.type == 'select') control = new BoundSelect(opts);
107
110
  else if (attrib.type == 'checkbox') control = new BoundCheckbox(opts);
108
111
  else if (attrib.type == 'checkbox-multiple') control = new BoundCheckboxMultiple(opts);
@@ -10,6 +10,7 @@
10
10
  *
11
11
  *= require colorbox-rails
12
12
  *= require jquery-ui
13
+ *= require caboose/jquery.datetimepicker
13
14
  *= require caboose/fonts
14
15
  *= require caboose/caboose
15
16
  *= require caboose/message_boxes
@@ -0,0 +1,523 @@
1
+ .xdsoft_datetimepicker {
2
+ box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506);
3
+ background: #fff;
4
+ border-bottom: 1px solid #bbb;
5
+ border-left: 1px solid #ccc;
6
+ border-right: 1px solid #ccc;
7
+ border-top: 1px solid #ccc;
8
+ color: #333;
9
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
10
+ padding: 8px;
11
+ padding-left: 0;
12
+ padding-top: 2px;
13
+ position: absolute;
14
+ z-index: 9999;
15
+ -moz-box-sizing: border-box;
16
+ box-sizing: border-box;
17
+ display: none;
18
+ }
19
+
20
+ .xdsoft_datetimepicker iframe {
21
+ position: absolute;
22
+ left: 0;
23
+ top: 0;
24
+ width: 75px;
25
+ height: 210px;
26
+ background: transparent;
27
+ border: none;
28
+ }
29
+
30
+ /*For IE8 or lower*/
31
+ .xdsoft_datetimepicker button {
32
+ border: none !important;
33
+ }
34
+
35
+ .xdsoft_noselect {
36
+ -webkit-touch-callout: none;
37
+ -webkit-user-select: none;
38
+ -khtml-user-select: none;
39
+ -moz-user-select: none;
40
+ -ms-user-select: none;
41
+ -o-user-select: none;
42
+ user-select: none;
43
+ }
44
+
45
+ .xdsoft_noselect::selection { background: transparent }
46
+ .xdsoft_noselect::-moz-selection { background: transparent }
47
+
48
+ .xdsoft_datetimepicker.xdsoft_inline {
49
+ display: inline-block;
50
+ position: static;
51
+ box-shadow: none;
52
+ }
53
+
54
+ .xdsoft_datetimepicker * {
55
+ -moz-box-sizing: border-box;
56
+ box-sizing: border-box;
57
+ padding: 0;
58
+ margin: 0;
59
+ }
60
+
61
+ .xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker {
62
+ display: none;
63
+ }
64
+
65
+ .xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active {
66
+ display: block;
67
+ }
68
+
69
+ .xdsoft_datetimepicker .xdsoft_datepicker {
70
+ width: 224px;
71
+ float: left;
72
+ margin-left: 8px;
73
+ }
74
+
75
+ .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker {
76
+ width: 256px;
77
+ }
78
+
79
+ .xdsoft_datetimepicker .xdsoft_timepicker {
80
+ width: 58px;
81
+ float: left;
82
+ text-align: center;
83
+ margin-left: 8px;
84
+ margin-top: 0;
85
+ }
86
+
87
+ .xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker {
88
+ margin-top: 8px;
89
+ margin-bottom: 3px
90
+ }
91
+
92
+ .xdsoft_datetimepicker .xdsoft_mounthpicker {
93
+ position: relative;
94
+ text-align: center;
95
+ }
96
+
97
+ .xdsoft_datetimepicker .xdsoft_label i,
98
+ .xdsoft_datetimepicker .xdsoft_prev,
99
+ .xdsoft_datetimepicker .xdsoft_next,
100
+ .xdsoft_datetimepicker .xdsoft_today_button {
101
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
102
+ }
103
+
104
+ .xdsoft_datetimepicker .xdsoft_label i {
105
+ opacity: 0.5;
106
+ background-position: -92px -19px;
107
+ display: inline-block;
108
+ width: 9px;
109
+ height: 20px;
110
+ vertical-align: middle;
111
+ }
112
+
113
+ .xdsoft_datetimepicker .xdsoft_prev {
114
+ float: left;
115
+ background-position: -20px 0;
116
+ }
117
+ .xdsoft_datetimepicker .xdsoft_today_button {
118
+ float: left;
119
+ background-position: -70px 0;
120
+ margin-left: 5px;
121
+ }
122
+
123
+ .xdsoft_datetimepicker .xdsoft_next {
124
+ float: right;
125
+ background-position: 0 0;
126
+ }
127
+
128
+ .xdsoft_datetimepicker .xdsoft_next,
129
+ .xdsoft_datetimepicker .xdsoft_prev ,
130
+ .xdsoft_datetimepicker .xdsoft_today_button {
131
+ background-color: transparent;
132
+ background-repeat: no-repeat;
133
+ border: 0 none;
134
+ cursor: pointer;
135
+ display: block;
136
+ height: 30px;
137
+ opacity: 0.5;
138
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
139
+ outline: medium none;
140
+ overflow: hidden;
141
+ padding: 0;
142
+ position: relative;
143
+ text-indent: 100%;
144
+ white-space: nowrap;
145
+ width: 20px;
146
+ min-width: 0;
147
+ }
148
+
149
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
150
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next {
151
+ float: none;
152
+ background-position: -40px -15px;
153
+ height: 15px;
154
+ width: 30px;
155
+ display: block;
156
+ margin-left: 14px;
157
+ margin-top: 7px;
158
+ }
159
+
160
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev {
161
+ background-position: -40px 0;
162
+ margin-bottom: 7px;
163
+ margin-top: 0;
164
+ }
165
+
166
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box {
167
+ height: 151px;
168
+ overflow: hidden;
169
+ border-bottom: 1px solid #ddd;
170
+ }
171
+
172
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div {
173
+ background: #f5f5f5;
174
+ border-top: 1px solid #ddd;
175
+ color: #666;
176
+ font-size: 12px;
177
+ text-align: center;
178
+ border-collapse: collapse;
179
+ cursor: pointer;
180
+ border-bottom-width: 0;
181
+ height: 25px;
182
+ line-height: 25px;
183
+ }
184
+
185
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child {
186
+ border-top-width: 0;
187
+ }
188
+
189
+ .xdsoft_datetimepicker .xdsoft_today_button:hover,
190
+ .xdsoft_datetimepicker .xdsoft_next:hover,
191
+ .xdsoft_datetimepicker .xdsoft_prev:hover {
192
+ opacity: 1;
193
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
194
+ }
195
+
196
+ .xdsoft_datetimepicker .xdsoft_label {
197
+ display: inline;
198
+ position: relative;
199
+ z-index: 9999;
200
+ margin: 0;
201
+ padding: 5px 3px;
202
+ font-size: 14px;
203
+ line-height: 20px;
204
+ font-weight: bold;
205
+ background-color: #fff;
206
+ float: left;
207
+ width: 182px;
208
+ text-align: center;
209
+ cursor: pointer;
210
+ }
211
+
212
+ .xdsoft_datetimepicker .xdsoft_label:hover>span {
213
+ text-decoration: underline;
214
+ }
215
+
216
+ .xdsoft_datetimepicker .xdsoft_label:hover i {
217
+ opacity: 1.0;
218
+ }
219
+
220
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select {
221
+ border: 1px solid #ccc;
222
+ position: absolute;
223
+ right: 0;
224
+ top: 30px;
225
+ z-index: 101;
226
+ display: none;
227
+ background: #fff;
228
+ max-height: 160px;
229
+ overflow-y: hidden;
230
+ }
231
+
232
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px }
233
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px }
234
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
235
+ color: #fff;
236
+ background: #ff8000;
237
+ }
238
+
239
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option {
240
+ padding: 2px 10px 2px 5px;
241
+ text-decoration: none !important;
242
+ }
243
+
244
+ .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
245
+ background: #33aaff;
246
+ box-shadow: #178fe5 0 1px 3px 0 inset;
247
+ color: #fff;
248
+ font-weight: 700;
249
+ }
250
+
251
+ .xdsoft_datetimepicker .xdsoft_month {
252
+ width: 100px;
253
+ text-align: right;
254
+ }
255
+
256
+ .xdsoft_datetimepicker .xdsoft_calendar {
257
+ clear: both;
258
+ }
259
+
260
+ .xdsoft_datetimepicker .xdsoft_year{
261
+ width: 48px;
262
+ margin-left: 5px;
263
+ }
264
+
265
+ .xdsoft_datetimepicker .xdsoft_calendar table {
266
+ border-collapse: collapse;
267
+ width: 100%;
268
+
269
+ }
270
+
271
+ .xdsoft_datetimepicker .xdsoft_calendar td > div {
272
+ padding-right: 5px;
273
+ }
274
+
275
+ .xdsoft_datetimepicker .xdsoft_calendar th {
276
+ height: 25px;
277
+ }
278
+
279
+ .xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th {
280
+ width: 14.2857142%;
281
+ background: #f5f5f5;
282
+ border: 1px solid #ddd;
283
+ color: #666;
284
+ font-size: 12px;
285
+ text-align: right;
286
+ vertical-align: middle;
287
+ padding: 0;
288
+ border-collapse: collapse;
289
+ cursor: pointer;
290
+ height: 25px;
291
+ }
292
+ .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th {
293
+ width: 12.5%;
294
+ }
295
+
296
+ .xdsoft_datetimepicker .xdsoft_calendar th {
297
+ background: #f1f1f1;
298
+ }
299
+
300
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today {
301
+ color: #33aaff;
302
+ }
303
+
304
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
305
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
306
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
307
+ background: #33aaff;
308
+ box-shadow: #178fe5 0 1px 3px 0 inset;
309
+ color: #fff;
310
+ font-weight: 700;
311
+ }
312
+
313
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
314
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
315
+ .xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled {
316
+ opacity: 0.5;
317
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
318
+ cursor: default;
319
+ }
320
+
321
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled {
322
+ opacity: 0.2;
323
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
324
+ }
325
+
326
+ .xdsoft_datetimepicker .xdsoft_calendar td:hover,
327
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
328
+ color: #fff !important;
329
+ background: #ff8000 !important;
330
+ box-shadow: none !important;
331
+ }
332
+
333
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,
334
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover {
335
+ background: #33aaff !important;
336
+ box-shadow: #178fe5 0 1px 3px 0 inset !important;
337
+ color: #fff !important;
338
+ }
339
+
340
+ .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
341
+ .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover {
342
+ color: inherit !important;
343
+ background: inherit !important;
344
+ box-shadow: inherit !important;
345
+ }
346
+
347
+ .xdsoft_datetimepicker .xdsoft_calendar th {
348
+ font-weight: 700;
349
+ text-align: center;
350
+ color: #999;
351
+ cursor: default;
352
+ }
353
+
354
+ .xdsoft_datetimepicker .xdsoft_copyright {
355
+ color: #ccc !important;
356
+ font-size: 10px;
357
+ clear: both;
358
+ float: none;
359
+ margin-left: 8px;
360
+ }
361
+
362
+ .xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important }
363
+ .xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important }
364
+
365
+ .xdsoft_time_box {
366
+ position: relative;
367
+ border: 1px solid #ccc;
368
+ }
369
+ .xdsoft_scrollbar >.xdsoft_scroller {
370
+ background: #ccc !important;
371
+ height: 20px;
372
+ border-radius: 3px;
373
+ }
374
+ .xdsoft_scrollbar {
375
+ position: absolute;
376
+ width: 7px;
377
+ right: 0;
378
+ top: 0;
379
+ bottom: 0;
380
+ cursor: pointer;
381
+ }
382
+ .xdsoft_scroller_box {
383
+ position: relative;
384
+ }
385
+
386
+ .xdsoft_datetimepicker.xdsoft_dark {
387
+ box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506);
388
+ background: #000;
389
+ border-bottom: 1px solid #444;
390
+ border-left: 1px solid #333;
391
+ border-right: 1px solid #333;
392
+ border-top: 1px solid #333;
393
+ color: #ccc;
394
+ }
395
+
396
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box {
397
+ border-bottom: 1px solid #222;
398
+ }
399
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div {
400
+ background: #0a0a0a;
401
+ border-top: 1px solid #222;
402
+ color: #999;
403
+ }
404
+
405
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label {
406
+ background-color: #000;
407
+ }
408
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select {
409
+ border: 1px solid #333;
410
+ background: #000;
411
+ }
412
+
413
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
414
+ color: #000;
415
+ background: #007fff;
416
+ }
417
+
418
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
419
+ background: #cc5500;
420
+ box-shadow: #b03e00 0 1px 3px 0 inset;
421
+ color: #000;
422
+ }
423
+
424
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
425
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
426
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
427
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button {
428
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
429
+ }
430
+
431
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
432
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
433
+ background: #0a0a0a;
434
+ border: 1px solid #222;
435
+ color: #999;
436
+ }
437
+
438
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
439
+ background: #0e0e0e;
440
+ }
441
+
442
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today {
443
+ color: #cc5500;
444
+ }
445
+
446
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
447
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
448
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
449
+ background: #cc5500;
450
+ box-shadow: #b03e00 0 1px 3px 0 inset;
451
+ color: #000;
452
+ }
453
+
454
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
455
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
456
+ color: #000 !important;
457
+ background: #007fff !important;
458
+ }
459
+
460
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
461
+ color: #666;
462
+ }
463
+
464
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important }
465
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important }
466
+ .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important }
467
+
468
+ .xdsoft_dark .xdsoft_time_box {
469
+ border: 1px solid #333;
470
+ }
471
+
472
+ .xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller {
473
+ background: #333 !important;
474
+ }
475
+ .xdsoft_datetimepicker .xdsoft_save_selected {
476
+ display: block;
477
+ border: 1px solid #dddddd !important;
478
+ margin-top: 5px;
479
+ width: 100%;
480
+ color: #454551;
481
+ font-size: 13px;
482
+ }
483
+ .xdsoft_datetimepicker .blue-gradient-button {
484
+ font-family: "museo-sans", "Book Antiqua", sans-serif;
485
+ font-size: 12px;
486
+ font-weight: 300;
487
+ color: #82878c;
488
+ height: 28px;
489
+ position: relative;
490
+ padding: 4px 17px 4px 33px;
491
+ border: 1px solid #d7d8da;
492
+ background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%);
493
+ /* FF3.6+ */
494
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa));
495
+ /* Chrome,Safari4+ */
496
+ background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%);
497
+ /* Chrome10+,Safari5.1+ */
498
+ background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%);
499
+ /* Opera 11.10+ */
500
+ background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%);
501
+ /* IE10+ */
502
+ background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%);
503
+ /* W3C */
504
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 );
505
+ /* IE6-9 */
506
+ }
507
+ .xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span {
508
+ color: #454551;
509
+ background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
510
+ /* FF3.6+ */
511
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF));
512
+ /* Chrome,Safari4+ */
513
+ background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
514
+ /* Chrome10+,Safari5.1+ */
515
+ background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
516
+ /* Opera 11.10+ */
517
+ background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
518
+ /* IE10+ */
519
+ background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%);
520
+ /* W3C */
521
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 );
522
+ /* IE6-9 */
523
+ }