jquery-datetimepicker 0.0.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.
data/README.md ADDED
@@ -0,0 +1 @@
1
+ test
@@ -0,0 +1,310 @@
1
+ (function($) {
2
+ $.fn.dateTimePicker = function(opts) {
3
+ var thresholdDictionary = {
4
+ 'minute' : 'Minutes before',
5
+ 'hour' : 'Hours before',
6
+ 'day' : 'Days before',
7
+ 'week' : 'Weeks before'
8
+ }
9
+
10
+ var methods = {
11
+ insertCalendar: function(element, dateTimePicker) {
12
+ methods.bindMethods(element, dateTimePicker);
13
+ element.data('activeDateTimePicker', true);
14
+ // Add datepicker
15
+ dateTimePicker.find('.reminder-date-add').datepicker({
16
+ onSelect: function(dateText, _datepickerInstance) {
17
+ options.onSelectDate.apply(element, [dateText, _datepickerInstance, this]); // 'this' refers to associated input field (see docs for jQuery-UI datepicker)
18
+ },
19
+ defaultDate: (typeof(options.defaultDate) == 'function') ? options.defaultDate.apply(element) : options.defaultDate
20
+ });
21
+
22
+ // convenience method for getting to datepicker element
23
+ dateTimePicker.dtElement = dateTimePicker.find('.reminder-date-add');
24
+
25
+ if (options.hideAlertUI) {
26
+ dateTimePicker.find('.add-alert-container').hide();
27
+ dateTimePicker.find('.alert-add').hide();
28
+ } else {
29
+ // Show UI if there are alerts set by default if (dateTimePicker.alerts.length > 0)
30
+ // Set default alerts
31
+ var defaultAlerts;
32
+ if (typeof(options.defaultAlerts) == 'function') {
33
+ defaultAlerts = options.defaultAlerts.apply(element) || [];
34
+ }
35
+ else if (typeof(options.defaultAlerts) == 'array') {
36
+ defaultAlerts = options.defaultAlerts;
37
+ }
38
+
39
+ $.each(defaultAlerts, function(i, _alert) {
40
+ dateTimePicker.setAlert(_alert.time, _alert.threshold, _alert.data);
41
+ });
42
+
43
+ // Show UI if there are alerts set by default
44
+ if (dateTimePicker.alerts.length > 0) {
45
+ dateTimePicker.find('.alert-trigger-container .slider').addClass('on');
46
+ dateTimePicker.find('.alert-add').show();
47
+ }
48
+ }
49
+
50
+ // Insert the calendar into the DOM
51
+ if (typeof(options.insert) == 'function') {
52
+ options.insert.apply(element, [dateTimePicker]);
53
+ }
54
+ else if (typeof(options.insert) == 'string') {
55
+ $(options.insert).append(dateTimePicker);
56
+ }
57
+ else {
58
+ element.append(dateTimePicker);
59
+ }
60
+
61
+ // Pick alert threshold (e.g. minutes, hours, days, weeks)
62
+ dateTimePicker.find('.alert-before ul li').click(function() {
63
+ dateTimePicker.find('.alert-before .selected').replaceWith(
64
+ $(this).find('a').clone().addClass('selected')
65
+ );
66
+ });
67
+
68
+ // Set default time
69
+ if (typeof(options.defaultTime) == 'function') {
70
+ dateTimePicker.setTime(options.defaultTime.apply(element));
71
+ }else{
72
+ dateTimePicker.setTime(options.defaultTime);
73
+ }
74
+ },
75
+ bindMethods: function(element, dateTimePicker) {
76
+ dateTimePicker.getDateTime = methods.getDateTime.bind(dateTimePicker);
77
+ dateTimePicker.getDate = methods.getDate.bind(dateTimePicker);
78
+ dateTimePicker.getTime = methods.getTime.bind(dateTimePicker);
79
+ dateTimePicker.getAlerts = methods.getAlerts.bind(dateTimePicker);
80
+
81
+ dateTimePicker.setTime = methods.setTime.bind(dateTimePicker);
82
+ dateTimePicker.setAlert = methods.setAlert.bind(dateTimePicker);
83
+ dateTimePicker.removeAlert = methods.removeAlert.bind(dateTimePicker);
84
+ dateTimePicker.destroy = methods.destroy.bind(dateTimePicker);
85
+ dateTimePicker.thresholdDictionary = thresholdDictionary;
86
+ dateTimePicker.alerts = [];
87
+ dateTimePicker.element = element;
88
+
89
+ dateTimePicker.bind('clickoutside', function(e) {
90
+ //*****************************************************
91
+ // datepicker removes some elements from the dom, and
92
+ // that triggers clickoutside. So we need to check for elements
93
+ // that have been removed from the DOM.
94
+
95
+ if ($(e.target).parents('.ui-datepicker-header').length > 0) return; // Cycling through months
96
+ if ($(e.target).parents('.alert-record').length > 0) return; // Removal of alerts
97
+ //*****************************************************
98
+
99
+ // Looks like we're clear to remove
100
+ if (options.onClickOutside == 'cancel') {
101
+ options.onCancel.apply(element, [dateTimePicker]);
102
+ } else if (options.onClickOutside == 'OK') {
103
+ options.onOK.apply(element, [dateTimePicker]);
104
+ }
105
+ dateTimePicker.destroy();
106
+ });
107
+
108
+ dateTimePicker.find('.clock-down-arrow,.clock-up-arrow').click(function () {
109
+ methods.changeTime.apply($(this), [dateTimePicker]);
110
+ });
111
+
112
+ // Cancel button
113
+ dateTimePicker.find('.cancel').click(function() {
114
+ options.onCancel.apply(element, [dateTimePicker]);
115
+ dateTimePicker.destroy();
116
+ });
117
+
118
+ // OK button
119
+ dateTimePicker.find('.ok').click(function() {
120
+ options.onOK.apply(element, [dateTimePicker]);
121
+ dateTimePicker.destroy();
122
+ });
123
+
124
+ // Toggle alerts callback
125
+ dateTimePicker.find('.alert-trigger-container').click(function(e){
126
+ var slider = $(this).find('.slider');
127
+ slider.toggleClass("on");
128
+
129
+ if(slider.hasClass("on")) {
130
+ dateTimePicker.find('.alert-add').show();
131
+ } else {
132
+ // Destroy all alerts if use decides to hide UI
133
+ dateTimePicker.find('.alert-add').hide();
134
+
135
+ // callback for onRemoveAlert
136
+ $.each($(dateTimePicker.alerts), function(i, _alert) {
137
+ dateTimePicker.removeAlert($(_alert['recordElement']));
138
+ });
139
+ }
140
+ });
141
+
142
+ // Create alert callback
143
+ dateTimePicker.find('.btn-add-alert').click(function(){
144
+ var alertTime = dateTimePicker.find('.add-reminder-time-input input').val();
145
+ var alertThreshold = dateTimePicker.find('.alert-before .selected').data('threshold');
146
+ dateTimePicker.setAlert(alertTime, alertThreshold);
147
+ });
148
+ },
149
+ setAlert: function(alertTime, alertThreshold, _data) {
150
+ var alertRecord = $("<div class='alert-record'><span class='alert-time'>" + alertTime + "</span> <span data-threshold-value='"+alertThreshold+"' class='alert-threshold'>" + (this.thresholdDictionary[alertThreshold] || alertThreshold) + "</span></div>");
151
+ var cancelAlert = $("<span class='cancel'>X</span>");
152
+
153
+ var dateTimePicker = this;
154
+ cancelAlert.click(function() {
155
+ dateTimePicker.removeAlert($(this).closest('.alert-record'));
156
+ });
157
+
158
+ alertRecord.append(cancelAlert);
159
+ dateTimePicker.find('.scheduled-alerts').append(alertRecord);
160
+
161
+ var alertObject = methods.buildAlertObject(alertRecord);
162
+ dateTimePicker.alerts.push(alertObject);
163
+
164
+ // Custom data members for alert (can be set using defaultAlerts option)
165
+ if (_data) {
166
+ $.each(_data, function(attr, value) {
167
+ alertRecord.attr("data-"+attr, value);
168
+ alertRecord.data(attr, value);
169
+ });
170
+
171
+ alertObject.data = _data;
172
+ }
173
+
174
+ options.onSetAlert.apply(alertRecord, [alertObject]);
175
+
176
+ return alertObject;
177
+ },
178
+ removeAlert: function(alertDOMObject) {
179
+ // Note: Have to use [0] to get DOM element out of jQuery object (http://stackoverflow.com/questions/6325671/jquery-inarray-locating-html-element)
180
+ var arrayPosition = $.inArray(alertDOMObject[0], alertDOMObject.parent('.scheduled-alerts').children('.alert-record'));
181
+
182
+ options.onRemoveAlert.apply(this.alerts[arrayPosition]['recordElement'], [this.alerts[arrayPosition]]);
183
+
184
+ alertDOMObject.remove(); // remove it from DOM
185
+ this.alerts.splice(arrayPosition, 1); // Remove it from alerts array
186
+ },
187
+ buildAlertObject: function(alertRecord) {
188
+ var alertTime = parseInt($(alertRecord).find('.alert-time').html());
189
+ var alertThreshold = $(alertRecord).find('.alert-threshold').data('threshold-value');
190
+ return {time: alertTime, threshold: alertThreshold, recordElement: alertRecord};
191
+ },
192
+ destroy: function() {
193
+ this.element.data('activeDateTimePicker', false);
194
+ this.remove();
195
+ },
196
+ defaultTime: function() {
197
+ var today=new Date();
198
+ var hour = today.getHours() + 1 > 24 ? 0 : today.getHours() + 1
199
+ return methods.toTimeObject(hour, 0);
200
+ },
201
+ toTimeObject: function(hour, minute, ampm) {
202
+ var m1,m2;
203
+ hour = parseInt(hour);
204
+ minute = parseInt(minute);
205
+
206
+ if (hour >= 12) {
207
+ if (hour != 12) hour = hour - 12;
208
+ if (!ampm) ampm = 'pm';
209
+ }
210
+ else if (hour <= 11) {
211
+ if (hour == 0) hour = 1;
212
+ if (!ampm) ampm = 'am';
213
+ }
214
+
215
+ if (minute > 10) {
216
+ m1 = parseInt((""+minute)[0]);
217
+ m2 = parseInt((""+minute)[1]);
218
+ } else {
219
+ m1 = 0;
220
+ m2 = minute;
221
+ }
222
+
223
+ return { "hour" : hour,
224
+ "minuteOne" : m1,
225
+ "minuteTwo" : m2,
226
+ "ampm" : ampm };
227
+ },
228
+ setTime: function(timeObject) {
229
+ if (!this.time) this.time = methods.defaultTime();
230
+ $.extend(this.time, timeObject);
231
+
232
+ this.find('.clock-hour-one .clock-value').html(this.time['hour']);
233
+ this.find('.clock-minute-one .clock-value').html(this.time['minuteOne']);
234
+ this.find('.clock-minute-two .clock-value').html(this.time['minuteTwo']);
235
+ this.find('.clock-ampm .clock-value').html(this.time['ampm']);
236
+ },
237
+ changeTime: function(dateTimePicker) {
238
+ var value = parseInt($(this).siblings('.clock-value').html());
239
+ var min = parseInt($(this).closest('[data-min]').data('min') || '0');
240
+ var max = parseInt($(this).closest('[data-max]').data('max') || '0');
241
+ var _type = $(this).closest('[data-clock-value]').data('clock-value');
242
+ var next;
243
+
244
+ if (_type == 'ampm') {
245
+ next = ($(this).siblings('.clock-value').html() == 'am' ? 'pm' : 'am');
246
+ } else {
247
+ if ($(this).hasClass('clock-up-arrow')) {
248
+ next = ((value + 1) > max) ? min : value + 1;
249
+ } else {
250
+ next = ((value - 1) < min) ? max : value - 1;
251
+ }
252
+ }
253
+
254
+ dateTimePicker.time[_type] = next;
255
+ dateTimePicker.setTime();
256
+ },
257
+ getDateTime: function() {
258
+ var date = this.dtElement.datepicker('getDate');
259
+ var time = this.time;
260
+ var minute = parseInt(time.minuteOne + "" + time.minuteTwo);
261
+ var hour = parseInt(time.hour);
262
+
263
+ if (hour < 12 && time.ampm == 'pm'){
264
+ hour = hour + 12;
265
+ }
266
+ else if (hour == 12 && time.ampm == 'am') {
267
+ hour = 0;
268
+ }
269
+
270
+ date.setHours(hour);
271
+ date.setMinutes(minute);
272
+ return date;
273
+ },
274
+ getDate: function() {
275
+ var d = this.dtElement.datepicker('getDate');
276
+ return (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
277
+ },
278
+ getTime: function() {
279
+ return this.time;
280
+ },
281
+ getAlerts: function() {
282
+ return this.alerts;
283
+ }
284
+ };
285
+
286
+ var cal = '<div class="arrow_box-ca calendar-main-container"><div class="calender-container"> <div class="reminder-date-add"> </div> <ul class="reminder-time-set"> <li class="clock-hour-one" data-min="1" data-max="12" data-clock-value="hour"> <div class="clock-up-arrow"></div> <div class="clock-value">12</div> <div class="clock-down-arrow"></div> </li> <li class="clock-operator">:</li> <li class="clock-minute-one" data-max="5" data-clock-value="minuteOne"> <div class="clock-up-arrow"></div> <div class="clock-value">0</div> <div class="clock-down-arrow"></div> </li> <li class="clock-minute-two" data-max="9" data-clock-value="minuteTwo"> <div class="clock-up-arrow"></div> <div class="clock-value">0</div> <div class="clock-down-arrow"></div> </li> <li class="clock-ampm" data-clock-value="ampm"> <div class="clock-up-arrow"></div> <div class="clock-value">pm</div> <div class="clock-down-arrow"></div> </li> </ul> <div class="add-alert-container"> <div class="alerts-label">Alerts</div> <div class="alert-trigger-container"> <div class="alert-trigger"> <div class="slider off"></div> </div> <div class="trigger-labels"> <span class="pull-left">OFF</span> <span class="pull-right">ON</span> <br style="clear:both;"> </div> </div> <br style="clear:both;"> <div class="scheduled-alerts"></div> </div> <div class="alert-add"> <div class="a-label">Alerts</div> <div class="alert-settings"> <ul> <li class="add-reminder-time-input"><input type="text" value="5"></li> <li class="alert-before"> <a href="#" class="selected" data-format="M" title="Min" data-threshold="minute"><span class="alert-when">Minutes</span> <span class="before-label">before</span></a> <ul><li><a href="#" data-format="M" title="Minutes" data-threshold="minute"><span class="alert-when">Minutes</span> <span class="before-label">before</span></a></li><li><a href="#" title="Hours" data-format="H" data-threshold="hour"><span class="alert-when">Hours</span> <span class="alert-when">before</span></a></li> <li><a href="#" title="Days" data-format="D" data-threshold="day"><span class="alert-when">Days</span> <span class="before-label">before</span></a></li> <li><a href="#" title="Weeks" data-format="W" data-threshold="week"><span class="alert-when">Weeks</span> <span class="before-label">before</span></a></li> </ul> </li> <li class="btn-add-alert">+</li> <br style="clear:both;"> </ul> </div> </div> </div><div class="actions"><span class="cancel">Cancel</span><span class="ok">OK</span></div></div>';
287
+
288
+ var options = $.extend({
289
+ onClickOutside: 'OK', // 'OK' or 'cancel'
290
+ onSelectDate: $.noop, // (optional) When user clicks on a date. Passes dateText, datepicker instance, and associate input field as arguments.
291
+ onSetAlert: $.noop, // (optional) passes added alert as argument
292
+ onRemoveAlert: $.noop, // (optional) passes removed alert and alert instance as argument
293
+ onCancel: $.noop,
294
+ onOK: $.noop,
295
+ defaultDate: null,
296
+ defaultTime: null, // (optional) {hour: 12, minuteOne: 0, minuteTwo: 5, ampm: 'pm'} OR function that returns object
297
+ defaultAlerts: $.noop, // (optional) [{time: 5, threshold: 'Mins', data : {'alert-id' : 1}}, {time: 10, threshold: 'Days'}]
298
+ insert: null, // (optional) css id or function where you want to add the widget
299
+ hideAlertUI: null
300
+ }, opts);
301
+
302
+ return $(document).on('click', this.selector, function(e) {
303
+ if (!$(this).data('activeDateTimePicker')) {
304
+ methods.insertCalendar($(this), $(cal));
305
+ }
306
+
307
+ e.stopPropagation();
308
+ });
309
+ }
310
+ })(jQuery);
@@ -0,0 +1,339 @@
1
+ .arrow_box-ca {
2
+ background: rgb(221, 221, 221);
3
+ width: 232px;
4
+ position: absolute;
5
+ z-index: 1000;
6
+ border: thin solid rgb(173, 173, 173);
7
+ }
8
+
9
+ .arrow_box-ca:after, .arrow_box-ca:before {
10
+ bottom: 100%;
11
+ border: solid transparent;
12
+ content: " ";
13
+ height: 0;
14
+ width: 0;
15
+ position: absolute;
16
+ pointer-events: none;
17
+ }
18
+
19
+ .arrow_box-ca:after {
20
+ border-color: rgba(255, 255, 255, 0);
21
+ border-bottom-color: #dddddd;
22
+ border-width: 9px;
23
+ left: 50%;
24
+ margin-left: -9px;
25
+ }
26
+
27
+ .arrow_box-ca:before {
28
+ border-color: rgba(128, 201, 232, 0);
29
+ border-bottom-color: #adadad;
30
+ border-width: 10px;
31
+ left: 50%;
32
+ margin-left: -10px;
33
+ }
34
+
35
+ .calender-container {
36
+ display: inline-block;
37
+ background: rgb(231, 231, 231);
38
+ .actions{
39
+ display: none;
40
+ }
41
+ .reminder-date-add{
42
+ width: 232px;
43
+ margin: 0 auto;
44
+ .ui-datepicker-inline{
45
+ padding: 0;
46
+ width: auto;
47
+ }
48
+ .ui-corner-all{
49
+ -webkit-border-radius: 0;
50
+ border-radius: 0;
51
+ border: none;
52
+ background: transparent;
53
+ }
54
+ .ui-datepicker-header{
55
+ border: none;
56
+ background: transparent;
57
+ padding:0;
58
+ color: rgb(184, 184, 184);
59
+ height: 40px;
60
+ .ui-datepicker-prev{
61
+ top: 5px;
62
+ left: 13px;
63
+ span{
64
+ background: url(backend-v2/cal-month-prev-arrow.png) 0 0 no-repeat;
65
+ top: 13px;
66
+ margin-top: 0;
67
+ left: 9px;
68
+ }
69
+ }
70
+ .ui-datepicker-next{
71
+ top: 7px;
72
+ right: 0;
73
+ span{
74
+ background: url(backend-v2/cal-month-next-arrow.png) 0 0 no-repeat;;
75
+ top:18px;
76
+ }
77
+ }
78
+ }
79
+ .ui-datepicker-calendar{
80
+ border-left: none;
81
+ thead{
82
+ background: rgb(74, 154, 255);
83
+ th{
84
+ color: #fff;
85
+ }
86
+ }
87
+ td{
88
+ border: 0px;
89
+ }
90
+ }
91
+ .ui-state-default{
92
+ background: transparent;
93
+ color: rgb(143, 143, 143);
94
+ }
95
+ .ui-datepicker-title{
96
+ font-weight: normal;
97
+ }
98
+ .ui-datepicker td{
99
+ padding: 0;
100
+ a{
101
+ padding: 5px;
102
+ text-align: center;
103
+ text-decoration: none;
104
+ }
105
+ }
106
+ .ui-state-default, .ui-widget-content .ui-state-default{
107
+ border-top: thin solid rgb(241, 241, 241);
108
+ border-bottom: thin solid #d1d1d1;
109
+ border-left: thin solid #d1d1d1;
110
+ border-right: thin solid rgb(241, 241, 241);
111
+ color: rgb(121, 121, 121);
112
+ }
113
+ .ui-state-active{
114
+ background: rgb(182, 182, 182);
115
+ color: #fff;
116
+ }
117
+ .ui-datepicker-next{
118
+ right: 15px;
119
+ }
120
+ .ui-datepicker-next:hover{
121
+ right: 15px;
122
+ }
123
+ .ui-datepicker-title{
124
+ line-height: 3em;
125
+ color: rgb(134, 134, 134);
126
+ text-transform: uppercase;
127
+ }
128
+ }
129
+ .reminder-time-set {
130
+ width: 180px;
131
+ margin: 20px auto;
132
+ li{
133
+ display: inline-block;
134
+ .clock-value{
135
+ padding: 12px 5px;
136
+ font-size: 26px;
137
+ color: #868686;
138
+ background: #fff;
139
+ text-align: center;
140
+ }
141
+ .clock-up-arrow{
142
+ height: 10px;
143
+ background: url(backend-v2/up-arrow-cal.png) no-repeat center center;
144
+ width: 24px;
145
+ margin-bottom: 5px;
146
+ cursor: pointer;
147
+ }
148
+ .clock-down-arrow{
149
+ height: 10px;
150
+ background: url(backend-v2/down-arrow-cal.png) no-repeat center center;
151
+ width: 24px;
152
+ margin-top: 5px;
153
+ cursor: pointer;
154
+ }
155
+ }
156
+ li.clock-time {
157
+ .clock-up-arrow, .clock-down-arrow{
158
+ width: 50px;
159
+ }
160
+ }
161
+ .clock-operator {
162
+ font-size: 26px;
163
+ color: #868686;
164
+ padding: 0 5px;
165
+ }
166
+ }
167
+ .scheduled-alerts{
168
+ overflow: auto;
169
+ margin-left: -1px;
170
+ margin-bottom: 10px;
171
+ margin-top: 10px;
172
+ .alert-record {
173
+ background-color: #fff;
174
+ text-align: left;
175
+ overflow: hidden;
176
+ padding: 5px;
177
+ .cancel {
178
+ cursor: pointer;
179
+ float: right;
180
+ display: block;
181
+ background-color: #eee;
182
+ }
183
+ }
184
+ }
185
+
186
+ .add-alert-container{
187
+ text-align: center;
188
+ color: #868686;
189
+ border-top: thin solid #cfcfce;
190
+ padding: 5px 10px;
191
+
192
+ .alerts-label{
193
+ float: left;
194
+ font-size: 12px;
195
+ background: url(backend-v2/reminder-env.png) no-repeat 0 center;
196
+ padding: 20px 35px;
197
+ }
198
+
199
+ .alert-trigger-container{
200
+ float:right;
201
+ padding: 0 10px;
202
+ }
203
+
204
+ .alert-trigger{
205
+ position: relative;
206
+ background: #fff;
207
+ height:17px;
208
+ width: 50px;
209
+ margin: 9px 0;
210
+ border-radius: 10px;
211
+ -webkit-border-radius: 10px;
212
+ overflow: hidden;
213
+ .slider{
214
+ position: absolute;
215
+ height: 100%;
216
+ width: 17px;
217
+ top: 0;
218
+ border-radius: 10px;
219
+ -webkit-border-radius: 10px;
220
+ cursor: pointer;
221
+ }
222
+ .slider.off{
223
+ background: #b6b6b6;
224
+
225
+ }
226
+ .slider.on{
227
+ background: #4a9aff;
228
+ right: 0;
229
+ }
230
+ }
231
+
232
+ .trigger-labels{
233
+ font-size: 10px;
234
+ }
235
+ }
236
+
237
+ .alert-add{
238
+ background: #4a9aff;
239
+ padding: 10px;
240
+ display: none;
241
+ color: #fff;
242
+ .alert-settings{
243
+ a{
244
+ color: #fff !important;
245
+ }
246
+ >ul{
247
+ display: inline-block;
248
+ cursor: pointer;
249
+ >li{
250
+ float:left;
251
+ background: #e7e7e7;
252
+ padding: 10px 0;
253
+ color:#4a9aff;
254
+ font-size: 20px;
255
+ width: 50px;
256
+ text-align: center;
257
+ }
258
+ li.alert-before{
259
+ background: #3988e9;
260
+ color: #fff;
261
+ font-size: 12px;
262
+ width: 110px;
263
+ text-align: left;
264
+ padding: 0;
265
+ overflow:hidden;
266
+ position: relative;
267
+ a{
268
+ color: #fff;
269
+ padding: 8px 10px;
270
+ display: block;
271
+
272
+ }
273
+ ul{
274
+ position: absolute;
275
+ width: 100%;
276
+ background: #3988e9;
277
+ li{
278
+ a{
279
+ border-top: thin solid #fff;
280
+ }
281
+ }
282
+ }
283
+ }
284
+ li.alert-before:hover{
285
+ overflow: visible;
286
+ }
287
+ li.add-reminder-time-input{
288
+ padding:0;
289
+ input{
290
+ height: 25px;
291
+ margin: 2px;
292
+ line-height: 25px;
293
+ width: 37px;
294
+ text-align: center;
295
+ background: transparent;
296
+ border: none;
297
+ outline: none;
298
+ color: #4a9aff;
299
+ font-size: 15px;
300
+ }
301
+ }
302
+ li.btn-add-alert{
303
+ font-weight: bold;
304
+ font-size: 32px;
305
+ padding: 8px 0;
306
+ }
307
+ }
308
+ }
309
+ a.selected{
310
+ background-image: url(backend-v2/table-sort-arrow-down.png);
311
+ background-position: 99px center;
312
+ background-repeat: no-repeat;
313
+ }
314
+ }
315
+
316
+ .add-reminder-trigger-show{
317
+ overflow: visible !important;
318
+ background: rgb(231, 231, 231);
319
+ }
320
+
321
+ }
322
+ .actions{
323
+ float:right;
324
+ span{
325
+ display: inline-block;
326
+ padding: 5px 10px;
327
+ min-width: 40px;
328
+ text-align:center;
329
+ margin: 15px 5px;
330
+ cursor: pointer;
331
+ }
332
+ .cancel{
333
+ background: #b6b6b6;
334
+ }
335
+ .ok{
336
+ background: #4a9aff;
337
+ color: #fff;
338
+ }
339
+ }
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jquery-datetimepicker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Aldo Sarmiento
9
+ - Chris Kendrick
10
+ - Clifford Simon
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2013-06-03 00:00:00.000000000 Z
15
+ dependencies: []
16
+ description: Simple pop up widget for picking a date and time. Also can set reminders
17
+ and alerts
18
+ email: cliff@bigpurpledot.com
19
+ executables: []
20
+ extensions: []
21
+ extra_rdoc_files: []
22
+ files:
23
+ - vendor/assets/javascripts/jquery-datetimepicker.js
24
+ - vendor/assets/stylesheets/jquery-datetimepicker.css
25
+ - README.md
26
+ homepage: http://rubygems.org/gems/jquery-datetimepicker
27
+ licenses: []
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubyforge_project:
46
+ rubygems_version: 1.8.25
47
+ signing_key:
48
+ specification_version: 3
49
+ summary: Date and Time Picker into one!
50
+ test_files: []