jquery-datetimepicker 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []