squab 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/LICENSE.md +13 -0
  2. data/README.md +4 -0
  3. data/bin/squab +4 -0
  4. data/defaults.yaml +5 -0
  5. data/lib/squab.rb +2 -0
  6. data/lib/squab/db.rb +37 -0
  7. data/lib/squab/events.rb +301 -0
  8. data/lib/squab/web.rb +231 -0
  9. data/public/api.html +66 -0
  10. data/public/css/anytime.css +777 -0
  11. data/public/css/bootstrap-responsive.css +1058 -0
  12. data/public/css/bootstrap-responsive.min.css +9 -0
  13. data/public/css/bootstrap.css +5774 -0
  14. data/public/css/bootstrap.min.css +9 -0
  15. data/public/css/docs.css +1001 -0
  16. data/public/css/normalize.css +406 -0
  17. data/public/css/pickadate/default.css +240 -0
  18. data/public/css/pickadate/default.date.css +332 -0
  19. data/public/css/prettify.css +30 -0
  20. data/public/css/squab.css +307 -0
  21. data/public/events.html +85 -0
  22. data/public/img/glyphicons-halflings-white.png +0 -0
  23. data/public/img/glyphicons-halflings.png +0 -0
  24. data/public/js/collection/events.js +74 -0
  25. data/public/js/lib/backbone-min.js +4 -0
  26. data/public/js/lib/datejs/core.js +48 -0
  27. data/public/js/lib/datejs/date-en-US.js +145 -0
  28. data/public/js/lib/jquery-latest.js +9440 -0
  29. data/public/js/lib/lodash.min.js +48 -0
  30. data/public/js/lib/pickadate/legacy.js +140 -0
  31. data/public/js/lib/pickadate/picker.date.js +957 -0
  32. data/public/js/lib/pickadate/picker.js +791 -0
  33. data/public/js/lib/typeahead.min.js +7 -0
  34. data/public/js/model/event.js +38 -0
  35. data/public/js/router.js +38 -0
  36. data/public/js/squab.js +6 -0
  37. data/public/js/view/day_view.js +22 -0
  38. data/public/js/view/event_view.js +14 -0
  39. data/public/js/view/events_view.js +46 -0
  40. data/public/js/view/search_view.js +130 -0
  41. metadata +220 -0
@@ -0,0 +1,406 @@
1
+ /*! normalize.css v2.1.2 | MIT License | git.io/normalize */
2
+
3
+ /* ==========================================================================
4
+ HTML5 display definitions
5
+ ========================================================================== */
6
+
7
+ /**
8
+ * Correct `block` display not defined in IE 8/9.
9
+ */
10
+
11
+ article,
12
+ aside,
13
+ details,
14
+ figcaption,
15
+ figure,
16
+ footer,
17
+ header,
18
+ hgroup,
19
+ main,
20
+ nav,
21
+ section,
22
+ summary {
23
+ display: block;
24
+ }
25
+
26
+ /**
27
+ * Correct `inline-block` display not defined in IE 8/9.
28
+ */
29
+
30
+ audio,
31
+ canvas,
32
+ video {
33
+ display: inline-block;
34
+ }
35
+
36
+ /**
37
+ * Prevent modern browsers from displaying `audio` without controls.
38
+ * Remove excess height in iOS 5 devices.
39
+ */
40
+
41
+ audio:not([controls]) {
42
+ display: none;
43
+ height: 0;
44
+ }
45
+
46
+ /**
47
+ * Address `[hidden]` styling not present in IE 8/9.
48
+ * Hide the `template` element in IE, Safari, and Firefox < 22.
49
+ */
50
+
51
+ [hidden],
52
+ template {
53
+ display: none;
54
+ }
55
+
56
+ /* ==========================================================================
57
+ Base
58
+ ========================================================================== */
59
+
60
+ /**
61
+ * 1. Set default font family to sans-serif.
62
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
63
+ * user zoom.
64
+ */
65
+
66
+ html {
67
+ font-family: sans-serif; /* 1 */
68
+ -ms-text-size-adjust: 100%; /* 2 */
69
+ -webkit-text-size-adjust: 100%; /* 2 */
70
+ }
71
+
72
+ /**
73
+ * Remove default margin.
74
+ */
75
+
76
+ body {
77
+ margin: 0;
78
+ }
79
+
80
+ /* ==========================================================================
81
+ Links
82
+ ========================================================================== */
83
+
84
+ /**
85
+ * Remove the gray background color from active links in IE 10.
86
+ */
87
+
88
+ a {
89
+ background: transparent;
90
+ }
91
+
92
+ /**
93
+ * Address `outline` inconsistency between Chrome and other browsers.
94
+ */
95
+
96
+ a:focus {
97
+ outline: thin dotted;
98
+ }
99
+
100
+ /**
101
+ * Improve readability when focused and also mouse hovered in all browsers.
102
+ */
103
+
104
+ a:active,
105
+ a:hover {
106
+ outline: 0;
107
+ }
108
+
109
+ /* ==========================================================================
110
+ Typography
111
+ ========================================================================== */
112
+
113
+ /**
114
+ * Address variable `h1` font-size and margin within `section` and `article`
115
+ * contexts in Firefox 4+, Safari 5, and Chrome.
116
+ */
117
+
118
+ h1 {
119
+ font-size: 2em;
120
+ margin: 0.67em 0;
121
+ }
122
+
123
+ /**
124
+ * Address styling not present in IE 8/9, Safari 5, and Chrome.
125
+ */
126
+
127
+ abbr[title] {
128
+ border-bottom: 1px dotted;
129
+ }
130
+
131
+ /**
132
+ * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
133
+ */
134
+
135
+ b,
136
+ strong {
137
+ font-weight: bold;
138
+ }
139
+
140
+ /**
141
+ * Address styling not present in Safari 5 and Chrome.
142
+ */
143
+
144
+ dfn {
145
+ font-style: italic;
146
+ }
147
+
148
+ /**
149
+ * Address differences between Firefox and other browsers.
150
+ */
151
+
152
+ hr {
153
+ -moz-box-sizing: content-box;
154
+ box-sizing: content-box;
155
+ height: 0;
156
+ }
157
+
158
+ /**
159
+ * Address styling not present in IE 8/9.
160
+ */
161
+
162
+ mark {
163
+ background: #ff0;
164
+ color: #000;
165
+ }
166
+
167
+ /**
168
+ * Correct font family set oddly in Safari 5 and Chrome.
169
+ */
170
+
171
+ code,
172
+ kbd,
173
+ pre,
174
+ samp {
175
+ font-family: monospace, serif;
176
+ font-size: 1em;
177
+ }
178
+
179
+ /**
180
+ * Improve readability of pre-formatted text in all browsers.
181
+ */
182
+
183
+ pre {
184
+ white-space: pre-wrap;
185
+ }
186
+
187
+ /**
188
+ * Set consistent quote types.
189
+ */
190
+
191
+ q {
192
+ quotes: "\201C" "\201D" "\2018" "\2019";
193
+ }
194
+
195
+ /**
196
+ * Address inconsistent and variable font size in all browsers.
197
+ */
198
+
199
+ small {
200
+ font-size: 80%;
201
+ }
202
+
203
+ /**
204
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
205
+ */
206
+
207
+ sub,
208
+ sup {
209
+ font-size: 75%;
210
+ line-height: 0;
211
+ position: relative;
212
+ vertical-align: baseline;
213
+ }
214
+
215
+ sup {
216
+ top: -0.5em;
217
+ }
218
+
219
+ sub {
220
+ bottom: -0.25em;
221
+ }
222
+
223
+ /* ==========================================================================
224
+ Embedded content
225
+ ========================================================================== */
226
+
227
+ /**
228
+ * Remove border when inside `a` element in IE 8/9.
229
+ */
230
+
231
+ img {
232
+ border: 0;
233
+ }
234
+
235
+ /**
236
+ * Correct overflow displayed oddly in IE 9.
237
+ */
238
+
239
+ svg:not(:root) {
240
+ overflow: hidden;
241
+ }
242
+
243
+ /* ==========================================================================
244
+ Figures
245
+ ========================================================================== */
246
+
247
+ /**
248
+ * Address margin not present in IE 8/9 and Safari 5.
249
+ */
250
+
251
+ figure {
252
+ margin: 0;
253
+ }
254
+
255
+ /* ==========================================================================
256
+ Forms
257
+ ========================================================================== */
258
+
259
+ /**
260
+ * Define consistent border, margin, and padding.
261
+ */
262
+
263
+ fieldset {
264
+ border: 1px solid #c0c0c0;
265
+ margin: 0 2px;
266
+ padding: 0.35em 0.625em 0.75em;
267
+ }
268
+
269
+ /**
270
+ * 1. Correct `color` not being inherited in IE 8/9.
271
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
272
+ */
273
+
274
+ legend {
275
+ border: 0; /* 1 */
276
+ padding: 0; /* 2 */
277
+ }
278
+
279
+ /**
280
+ * 1. Correct font family not being inherited in all browsers.
281
+ * 2. Correct font size not being inherited in all browsers.
282
+ * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
283
+ */
284
+
285
+ button,
286
+ input,
287
+ select,
288
+ textarea {
289
+ font-family: inherit; /* 1 */
290
+ font-size: 100%; /* 2 */
291
+ margin: 0; /* 3 */
292
+ }
293
+
294
+ /**
295
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
296
+ * the UA stylesheet.
297
+ */
298
+
299
+ button,
300
+ input {
301
+ line-height: normal;
302
+ }
303
+
304
+ /**
305
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
306
+ * All other form control elements do not inherit `text-transform` values.
307
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
308
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
309
+ */
310
+
311
+ button,
312
+ select {
313
+ text-transform: none;
314
+ }
315
+
316
+ /**
317
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
318
+ * and `video` controls.
319
+ * 2. Correct inability to style clickable `input` types in iOS.
320
+ * 3. Improve usability and consistency of cursor style between image-type
321
+ * `input` and others.
322
+ */
323
+
324
+ button,
325
+ html input[type="button"], /* 1 */
326
+ input[type="reset"],
327
+ input[type="submit"] {
328
+ -webkit-appearance: button; /* 2 */
329
+ cursor: pointer; /* 3 */
330
+ }
331
+
332
+ /**
333
+ * Re-set default cursor for disabled elements.
334
+ */
335
+
336
+ button[disabled],
337
+ html input[disabled] {
338
+ cursor: default;
339
+ }
340
+
341
+ /**
342
+ * 1. Address box sizing set to `content-box` in IE 8/9.
343
+ * 2. Remove excess padding in IE 8/9.
344
+ */
345
+
346
+ input[type="checkbox"],
347
+ input[type="radio"] {
348
+ box-sizing: border-box; /* 1 */
349
+ padding: 0; /* 2 */
350
+ }
351
+
352
+ /**
353
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
354
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
355
+ * (include `-moz` to future-proof).
356
+ */
357
+
358
+ input[type="search"] {
359
+ -webkit-appearance: textfield; /* 1 */
360
+ -moz-box-sizing: content-box;
361
+ -webkit-box-sizing: content-box; /* 2 */
362
+ box-sizing: content-box;
363
+ }
364
+
365
+ /**
366
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
367
+ * on OS X.
368
+ */
369
+
370
+ /*input[type="search"]::-webkit-search-cancel-button,
371
+ input[type="search"]::-webkit-search-decoration {
372
+ -webkit-appearance: none;
373
+ }
374
+ */
375
+ /**
376
+ * Remove inner padding and border in Firefox 4+.
377
+ */
378
+
379
+ button::-moz-focus-inner,
380
+ input::-moz-focus-inner {
381
+ border: 0;
382
+ padding: 0;
383
+ }
384
+
385
+ /**
386
+ * 1. Remove default vertical scrollbar in IE 8/9.
387
+ * 2. Improve readability and alignment in all browsers.
388
+ */
389
+
390
+ textarea {
391
+ overflow: auto; /* 1 */
392
+ vertical-align: top; /* 2 */
393
+ }
394
+
395
+ /* ==========================================================================
396
+ Tables
397
+ ========================================================================== */
398
+
399
+ /**
400
+ * Remove most spacing between table cells.
401
+ */
402
+
403
+ table {
404
+ border-collapse: collapse;
405
+ border-spacing: 0;
406
+ }
@@ -0,0 +1,240 @@
1
+ /* ==========================================================================
2
+ $BASE-PICKER
3
+ ========================================================================== */
4
+ /* ==========================================================================
5
+ $VARIABLES
6
+ ========================================================================== */
7
+ /**
8
+ * Base colors
9
+ */
10
+ /**
11
+ * Backgrounds
12
+ */
13
+ /**
14
+ * Borders
15
+ */
16
+ /**
17
+ * Buttons
18
+ */
19
+ /**
20
+ * Picker base
21
+ */
22
+ /**
23
+ * Date picker options
24
+ */
25
+ /**
26
+ * Theme configurations
27
+ */
28
+ /* ==========================================================================
29
+ $MIXINS
30
+ ========================================================================== */
31
+ /**
32
+ * Common picker item states
33
+ */
34
+ /**
35
+ * Opacity
36
+ */
37
+ /**
38
+ * Vendor prefixes
39
+ */
40
+ /**
41
+ * Note: the root picker element should __NOT__ be styled
42
+ * more than what’s here. Style the `.picker__holder` instead.
43
+ */
44
+ .picker {
45
+ font-size: 16px;
46
+ text-align: left;
47
+ line-height: 1.2;
48
+ color: #000000;
49
+ position: absolute;
50
+ z-index: 10000;
51
+ }
52
+ /**
53
+ * The picker input element.
54
+ */
55
+ .picker__input {
56
+ cursor: default;
57
+ }
58
+ /**
59
+ * When the picker is opened, the input element is “activated”.
60
+ */
61
+ .picker__input.picker__input--active {
62
+ border-color: #0089ec;
63
+ }
64
+ /**
65
+ * The holder is the only “scrollable” top-level container element.
66
+ */
67
+ .picker__holder {
68
+ width: 100%;
69
+ overflow-y: auto;
70
+ -webkit-overflow-scrolling: touch;
71
+ }
72
+
73
+ /*!
74
+ * Default mobile-first, responsive styling for pickadate.js
75
+ * Demo: http://amsul.github.io/pickadate.js/themes.htm#default
76
+ */
77
+ /* ==========================================================================
78
+ $VARIABLES
79
+ ========================================================================== */
80
+ /**
81
+ * Base colors
82
+ */
83
+ /**
84
+ * Backgrounds
85
+ */
86
+ /**
87
+ * Borders
88
+ */
89
+ /**
90
+ * Buttons
91
+ */
92
+ /**
93
+ * Picker base
94
+ */
95
+ /**
96
+ * Date picker options
97
+ */
98
+ /**
99
+ * Theme configurations
100
+ */
101
+ /* ==========================================================================
102
+ $MIXINS
103
+ ========================================================================== */
104
+ /**
105
+ * Common picker item states
106
+ */
107
+ /**
108
+ * Opacity
109
+ */
110
+ /**
111
+ * Vendor prefixes
112
+ */
113
+ /**
114
+ * Make the holder and frame fullscreen.
115
+ */
116
+ .picker__holder,
117
+ .picker__frame {
118
+ bottom: 0;
119
+ left: 0;
120
+ right: 0;
121
+ top: 100%;
122
+ }
123
+ /**
124
+ * The holder should overlay the entire screen.
125
+ */
126
+ .picker__holder {
127
+ position: fixed;
128
+ -webkit-transition: background 0.15s ease-out, top 0s 0.15s;
129
+ -moz-transition: background 0.15s ease-out, top 0s 0.15s;
130
+ transition: background 0.15s ease-out, top 0s 0.15s;
131
+ }
132
+ /**
133
+ * The frame that bounds the box contents of the picker.
134
+ */
135
+ .picker__frame {
136
+ position: absolute;
137
+ margin: 0 auto;
138
+ min-width: 256px;
139
+ max-width: 666px;
140
+ width: 100%;
141
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
142
+ filter: alpha(opacity=0);
143
+ -moz-opacity: 0;
144
+ opacity: 0;
145
+ -webkit-transition: all 0.15s ease-out;
146
+ -moz-transition: all 0.15s ease-out;
147
+ transition: all 0.15s ease-out;
148
+ }
149
+ @media (min-height: 33.875em) {
150
+ .picker__frame {
151
+ overflow: visible;
152
+ top: auto;
153
+ bottom: -100%;
154
+ max-height: 80%;
155
+ }
156
+ }
157
+ @media (min-height: 40.125em) {
158
+ .picker__frame {
159
+ margin-bottom: 7.5%;
160
+ }
161
+ }
162
+ /**
163
+ * The wrapper sets the stage to vertically align the box contents.
164
+ */
165
+ .picker__wrap {
166
+ display: table;
167
+ width: 100%;
168
+ height: 100%;
169
+ }
170
+ @media (min-height: 33.875em) {
171
+ .picker__wrap {
172
+ display: block;
173
+ }
174
+ }
175
+ /**
176
+ * The box contains all the picker contents.
177
+ */
178
+ .picker__box {
179
+ background: #ffffff;
180
+ display: table-cell;
181
+ vertical-align: middle;
182
+ }
183
+ @media (min-height: 26.5em) {
184
+ .picker__box {
185
+ font-size: 1.25em;
186
+ }
187
+ }
188
+ @media (min-height: 33.875em) {
189
+ .picker__box {
190
+ display: block;
191
+ font-size: 1.33em;
192
+ border: 1px solid #777777;
193
+ border-top-color: #898989;
194
+ border-bottom-width: 0;
195
+ -webkit-border-radius: 5px 5px 0 0;
196
+ -moz-border-radius: 5px 5px 0 0;
197
+ border-radius: 5px 5px 0 0;
198
+ -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
199
+ -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
200
+ box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
201
+ }
202
+ }
203
+ @media (min-height: 40.125em) {
204
+ .picker__box {
205
+ font-size: 1.5em;
206
+ border-bottom-width: 1px;
207
+ -webkit-border-radius: 5px;
208
+ -moz-border-radius: 5px;
209
+ border-radius: 5px;
210
+ }
211
+ }
212
+ /**
213
+ * When the picker opens...
214
+ */
215
+ .picker--opened .picker__holder {
216
+ top: 0;
217
+ background: transparent;
218
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
219
+ zoom: 1;
220
+ background: rgba(0, 0, 0, 0.32);
221
+ -webkit-transition: background 0.15s ease-out;
222
+ -moz-transition: background 0.15s ease-out;
223
+ transition: background 0.15s ease-out;
224
+ }
225
+ .picker--opened .picker__frame {
226
+ top: 0;
227
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
228
+ filter: alpha(opacity=100);
229
+ -moz-opacity: 1;
230
+ opacity: 1;
231
+ }
232
+ @media (min-height: 33.875em) {
233
+ .picker--opened .picker__frame {
234
+ top: auto;
235
+ bottom: 0;
236
+ }
237
+ }
238
+ /**
239
+ * For `large` screens, transform into an inline picker.
240
+ */