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: []
|