spina-template 0.2.4

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.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +17 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +29 -0
  7. data/Rakefile +1 -0
  8. data/app/.DS_Store +0 -0
  9. data/app/assets/.DS_Store +0 -0
  10. data/app/assets/images/.DS_Store +0 -0
  11. data/app/assets/images/spina/arrow-left.png +0 -0
  12. data/app/assets/images/spina/arrow-right.png +0 -0
  13. data/app/assets/images/spina/bg.jpg +0 -0
  14. data/app/assets/images/spina/danger-zone-ribbon.png +0 -0
  15. data/app/assets/images/spina/datepicker.png +0 -0
  16. data/app/assets/images/spina/divider.png +0 -0
  17. data/app/assets/images/spina/marker.png +0 -0
  18. data/app/assets/images/spina/mask.png +0 -0
  19. data/app/assets/images/spina/wheel.png +0 -0
  20. data/app/assets/javascripts/.DS_Store +0 -0
  21. data/app/assets/javascripts/spina/dropdown.js.coffee +64 -0
  22. data/app/assets/javascripts/spina/galleryselect.js.coffee +12 -0
  23. data/app/assets/javascripts/spina/modal.js.coffee +54 -0
  24. data/app/assets/javascripts/spina/switch.js.coffee +41 -0
  25. data/app/assets/javascripts/spina/tabs.js.coffee +13 -0
  26. data/app/assets/javascripts/spina/uploads.js.coffee +45 -0
  27. data/app/assets/javascripts/spina.js.coffee.erb +154 -0
  28. data/app/assets/stylesheets/.DS_Store +0 -0
  29. data/app/assets/stylesheets/spina/_admin_editing.css.sass +29 -0
  30. data/app/assets/stylesheets/spina/_buttons.css.sass +334 -0
  31. data/app/assets/stylesheets/spina/_cards.css.sass +57 -0
  32. data/app/assets/stylesheets/spina/_configuration.css.sass +16 -0
  33. data/app/assets/stylesheets/spina/_custom_animations.css.sass +61 -0
  34. data/app/assets/stylesheets/spina/_farbtastic.css.sass +37 -0
  35. data/app/assets/stylesheets/spina/_fonts.css.sass +14 -0
  36. data/app/assets/stylesheets/spina/_forms.css.sass +473 -0
  37. data/app/assets/stylesheets/spina/_gallery.css.sass +121 -0
  38. data/app/assets/stylesheets/spina/_grid.css.sass +12 -0
  39. data/app/assets/stylesheets/spina/_labels.css.sass +28 -0
  40. data/app/assets/stylesheets/spina/_login.css.sass +32 -0
  41. data/app/assets/stylesheets/spina/_mixins.css.scss +13 -0
  42. data/app/assets/stylesheets/spina/_modal.css.sass +158 -0
  43. data/app/assets/stylesheets/spina/_sortable_lists.css.sass +161 -0
  44. data/app/assets/stylesheets/spina/_tables.css.sass +144 -0
  45. data/app/assets/stylesheets/spina/_wysihtml5.css.sass +73 -0
  46. data/app/assets/stylesheets/spina/wysihtml5_textarea.css.sass +14 -0
  47. data/app/assets/stylesheets/spina.css.sass +521 -0
  48. data/lib/spina/template/version.rb +5 -0
  49. data/lib/spina/template.rb +12 -0
  50. data/spina-template.gemspec +26 -0
  51. data/vendor/.DS_Store +0 -0
  52. data/vendor/assets/.DS_Store +0 -0
  53. data/vendor/assets/javascripts/.DS_Store +0 -0
  54. data/vendor/assets/javascripts/spina/jquery.customfileinput.js +85 -0
  55. data/vendor/assets/javascripts/spina/jquery.datatables.js +12099 -0
  56. data/vendor/assets/javascripts/spina/jquery.farbtastic.js +345 -0
  57. data/vendor/assets/javascripts/spina/jquery.nestable.js +485 -0
  58. data/vendor/assets/javascripts/spina/jquery.sortable.js +3 -0
  59. data/vendor/assets/javascripts/spina/jquery.ui.datepicker-nl.js +23 -0
  60. data/vendor/assets/javascripts/spina/jquery.ui.js +6 -0
  61. data/vendor/assets/javascripts/spina/morris.js +1767 -0
  62. data/vendor/assets/javascripts/spina/nprogress.js +274 -0
  63. data/vendor/assets/javascripts/spina/raphael.js +8111 -0
  64. data/vendor/assets/javascripts/spina/wysihtml5.js +269 -0
  65. data/vendor/assets/javascripts/spina/wysihtml5_parser_rules.js +551 -0
  66. data/vendor/assets/stylesheets/.DS_Store +0 -0
  67. data/vendor/assets/stylesheets/spina/_animate.css +1 -0
  68. data/vendor/assets/stylesheets/spina/_morris.css +2 -0
  69. data/vendor/assets/stylesheets/spina/_normalize.css +396 -0
  70. data/vendor/assets/stylesheets/spina/_nprogress.css.scss +85 -0
  71. metadata +197 -0
@@ -0,0 +1,521 @@
1
+ // Frameworks
2
+ @import bourbon
3
+ @import neat
4
+
5
+ // Configuration
6
+ @import spina/configuration
7
+
8
+ // Normalizing
9
+ @import spina/normalize
10
+
11
+ @import spina/mixins
12
+
13
+ // Grid
14
+ @import spina/grid
15
+
16
+ // Fonts
17
+ @import spina/fonts
18
+
19
+ // Animations
20
+ @import spina/animate
21
+ @import spina/custom_animations
22
+
23
+ // Elements
24
+ @import spina/forms
25
+ @import spina/tables
26
+ @import spina/buttons
27
+ @import spina/labels
28
+ @import spina/modal
29
+ @import spina/sortable_lists
30
+ @import spina/gallery
31
+ @import spina/login
32
+ @import spina/cards
33
+
34
+ // Plugins
35
+ @import spina/morris
36
+ @import spina/nprogress
37
+ @import spina/wysihtml5
38
+ @import spina/farbtastic
39
+
40
+ html
41
+ min-height: 100%
42
+
43
+ html, body
44
+ height: 100%
45
+ font-family: $font-family
46
+ font-weight: 600
47
+
48
+ body
49
+ @include display(flex)
50
+
51
+ // Primary navigation
52
+
53
+ nav#primary
54
+ background: #111
55
+ height: 100%
56
+ padding-top: 10px
57
+ position: relative
58
+ text-align: center
59
+ width: 100px
60
+
61
+ @include media($tablet)
62
+ width: 80px
63
+
64
+ ul li a
65
+ color: #999
66
+ display: block
67
+ font-size: 10px
68
+ font-weight: 700
69
+ padding: 20px 0
70
+ position: relative
71
+ text-decoration: none
72
+ text-transform: uppercase
73
+ width: 100%
74
+ @include transition(color .15s ease)
75
+
76
+ @include media($tablet)
77
+ padding: 12px 0
78
+
79
+ ul li.active a, ul li a:hover
80
+ color: #fff
81
+
82
+ ul li.bottom a
83
+ bottom: 0
84
+ left: 0
85
+ position: absolute
86
+
87
+ ul li a:before
88
+ display: block
89
+ font-size: 26px
90
+ margin-bottom: 8px
91
+ text-transform: none
92
+
93
+ @include media($tablet)
94
+ font-size: 20px
95
+
96
+ ul li a[data-badge]:after
97
+ background: $danger-color
98
+ border-radius: 8px
99
+ color: #fff
100
+ content: attr(data-badge)
101
+ display: block
102
+ font-size: 12px
103
+ font-weight: bold
104
+ line-height: 16px
105
+ min-width: 10px
106
+ padding: 0 3px
107
+ position: absolute
108
+ right: 28px
109
+ top: 12px
110
+
111
+ // Secondary navigation
112
+
113
+ nav#secondary
114
+ background: #f5f5f5
115
+ border-right: 1px solid #ccc
116
+ height: 100%
117
+ padding: 30px 0
118
+ width: 300px
119
+
120
+ @include media($tablet)
121
+ left: 80px
122
+ padding-top: 12px
123
+ width: 200px
124
+
125
+ h1
126
+ color: #333
127
+ font-size: 24px
128
+ font-weight: 300
129
+ margin-bottom: 36px
130
+ padding: 0 30px
131
+
132
+ @include media($tablet)
133
+ display: none
134
+
135
+ ul li
136
+ position: relative
137
+
138
+ ul li a
139
+ color: #333
140
+ display: block
141
+ font-size: 15px
142
+ font-weight: 600
143
+ line-height: 15px
144
+ margin-left: 36px
145
+ padding: 16px 30px
146
+ text-decoration: none
147
+
148
+ @include media($tablet)
149
+ margin-left: 24px
150
+ padding-left: 0
151
+
152
+ small
153
+ color: #666
154
+ display: block
155
+ font-size: 14px
156
+ font-weight: normal
157
+ line-height: 18px
158
+ margin-top: 2px
159
+ @include transition(color .15s ease)
160
+
161
+ @include media($tablet)
162
+ display: none
163
+
164
+ ul li a:hover
165
+ color: #333
166
+
167
+ small, &:before
168
+ color: inherit
169
+
170
+ ul li.active a
171
+ color: $primary-color
172
+
173
+ small, &:before
174
+ color: inherit
175
+
176
+ ul li a:before
177
+ color: #666
178
+ display: block
179
+ float: left
180
+ font-size: 24px
181
+ margin-left: -36px
182
+ width: 24px
183
+ @include transition(color .15s ease)
184
+
185
+ @include media($tablet)
186
+ display: none
187
+
188
+ ul li.active
189
+ &:before
190
+ content: ""
191
+ display: block
192
+ position: absolute
193
+ right: -12px
194
+ top: 33%
195
+ @include triangle(23px, #ccc, right)
196
+
197
+ &:after
198
+ content: ""
199
+ display: block
200
+ position: absolute
201
+ right: -11px
202
+ top: 33%
203
+ @include triangle(22px, #f5f5f5, right)
204
+
205
+ // Tabs
206
+
207
+ nav.tabs
208
+ border-bottom: 1px solid #ddd
209
+ margin: 0 -40px 30px -40px
210
+ padding: 0 40px 0 24px
211
+
212
+ ul li
213
+ display: inline
214
+
215
+ ul li a
216
+ border: 1px solid transparent
217
+ color: #444
218
+ display: inline-block
219
+ font-size: 14px
220
+ font-weight: 600
221
+ margin-bottom: -1px
222
+ margin-top: 20px
223
+ padding: 12px 16px
224
+ text-decoration: none
225
+
226
+ ul li a:hover
227
+ color: #222
228
+
229
+ ul li.active a
230
+ border-color: #ddd
231
+ border-bottom: 1px solid #fff
232
+ border-radius: 3px 3px 0 0
233
+ color: $primary-color
234
+
235
+ .tab-content
236
+ display: none
237
+
238
+ &.active
239
+ display: block
240
+
241
+ // Notifications
242
+
243
+ .notification
244
+ position: relative
245
+ color: $info-color
246
+ margin: 20px 0
247
+ overflow: hidden
248
+ font-size: 14px
249
+ padding-left: 32px
250
+
251
+ &:before
252
+ position: absolute
253
+ left: 0px
254
+ color: #77caf9
255
+ display: block
256
+ font-size: 18px
257
+ margin-top: 1em
258
+
259
+ p
260
+ color: $info-color
261
+ font-weight: 600
262
+ line-height: 18px
263
+ margin-bottom: 0
264
+
265
+ small
266
+ display: block
267
+ font-size: 14px
268
+ font-weight: normal
269
+
270
+ ul
271
+ margin: 0
272
+
273
+ li
274
+ font-weight: normal
275
+
276
+ &.notification-error
277
+ color: $error-color
278
+
279
+ p
280
+ color: $error-color
281
+
282
+ &:before
283
+ color: #e7baba
284
+
285
+ &.notification-danger
286
+ color: $danger-color
287
+
288
+ p
289
+ color: $danger-color
290
+
291
+ &:before
292
+ color: $danger-color
293
+
294
+ // Permanent notice
295
+ .permanent-notice
296
+ background: #eee
297
+ border-bottom: 1px solid #ddd
298
+ color: #333
299
+ margin: -30px -40px 30px -40px
300
+ padding: 0 40px
301
+ position: relative
302
+
303
+ &:before
304
+ font-size: 16px
305
+ left: 14px
306
+ opacity: .25
307
+ position: absolute
308
+ top: 12px
309
+
310
+ p
311
+ font-size: 13px
312
+ line-height: 18px
313
+ margin: 0
314
+ padding: 12px 0
315
+
316
+ small
317
+ display: block
318
+ font-size: 12px
319
+ font-weight: 400
320
+
321
+ &.permanent-notice-info
322
+ background: #eef6fe
323
+ border-color: #def
324
+ color: #12659b
325
+
326
+ p
327
+ color: inherit
328
+
329
+ // Filters
330
+
331
+ .filters
332
+ margin: 20px 0
333
+
334
+ // Datepicker
335
+
336
+ .ui-datepicker
337
+ background: #fff
338
+ border: none
339
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .25)
340
+ width: 250px
341
+
342
+ .ui-datepicker-header
343
+ border: none
344
+ font-weight: 300
345
+
346
+ a.ui-datepicker-prev, a.ui-datepicker-next
347
+ background: none
348
+ border: none
349
+ color: transparent
350
+ cursor: pointer
351
+ display: block
352
+ height: 36px
353
+ opacity: .6
354
+ padding: 8px 0
355
+ position: absolute
356
+ right: 0
357
+ top: 0
358
+ width: 36px
359
+
360
+ a.ui-datepicker-prev
361
+ left: 0
362
+
363
+ a.ui-datepicker-prev:hover, a.ui-datepicker-next:hover
364
+ opacity: 1
365
+
366
+ a.ui-datepicker-prev span
367
+ background: url(asset_path("spina/arrow-left.png", "image")) no-repeat center
368
+ background-size: 10px 13px
369
+ display: block
370
+
371
+ a.ui-datepicker-next span
372
+ background: url(asset_path("spina/arrow-right.png", "image")) no-repeat center
373
+ background-size: 10px 13px
374
+ display: block
375
+
376
+ .ui-datepicker-title
377
+ line-height: 42px
378
+ text-align: center
379
+
380
+ .ui-datepicker-calendar
381
+ width: 100%
382
+
383
+ tr td:first-child, tr th:first-child
384
+ padding-left: 0px
385
+
386
+ tr td:last-child, tr th:last-child
387
+ padding-right: 0px
388
+
389
+ thead th
390
+ color: #444
391
+ font-weight: 600
392
+
393
+ tbody tr, thead tr
394
+ border: none
395
+
396
+ tbody tr td
397
+ background: none
398
+
399
+ tbody tr td a
400
+ display: block
401
+ line-height: 28px
402
+ text-align: center
403
+ padding: 2px 4px
404
+ width: 32px
405
+
406
+ tbody tr td a.ui-state-default
407
+ background: none
408
+ border: none
409
+ color: #777
410
+ font-weight: 600
411
+
412
+ tr:hover
413
+ background: none
414
+
415
+ tbody tr td a:hover
416
+ color: #000
417
+
418
+ tbody tr td a.ui-state-highlight
419
+ background: #eee
420
+ border-radius: 2px
421
+
422
+ tbody tr td a.ui-state-active
423
+ background: #444
424
+ border-radius: 2px
425
+ color: #fff
426
+
427
+ // Main content
428
+
429
+ section#main
430
+ padding: 30px 40px
431
+ height: 100%
432
+ overflow: scroll
433
+ @include flex(1)
434
+
435
+ // Danger zone
436
+ .danger-zone
437
+ background: url(asset_path('spina/danger-zone-ribbon.png', 'image')) repeat-x #fcfcfc
438
+ margin: 60px -40px 0 -40px
439
+ padding: 26px 40px
440
+
441
+ h2
442
+ color: #777
443
+ font-size: 16px
444
+ font-weight: 600
445
+
446
+ &:before
447
+ margin-right: 6px
448
+ vertical-align: middle
449
+
450
+ // Breadcrumbs
451
+
452
+ #main_content_header
453
+ min-height: 50px
454
+
455
+ @include media($tablet)
456
+ .button
457
+ overflow: hidden
458
+ height: 32px
459
+ width: 35px
460
+
461
+ &:before
462
+ margin-right: 200px
463
+
464
+ .breadcrumbs
465
+ color: #333
466
+ font-size: 24px
467
+ font-weight: 300
468
+
469
+ a
470
+ color: #999
471
+
472
+ @include media($tablet)
473
+ display: none
474
+
475
+ .divider
476
+ background: url(asset_path('spina/divider.png', 'image'))
477
+ color: #999
478
+ display: inline-block
479
+ height: 17px
480
+ margin: 0 20px
481
+ width: 6px
482
+
483
+ @include media($tablet)
484
+ display: none
485
+
486
+ // General styles
487
+
488
+ h1, h2, h3, h4, h5, h6
489
+ font-weight: 300
490
+ margin: 0
491
+
492
+ h1, h2
493
+ color: #333
494
+ font-size: 24px
495
+
496
+ ul
497
+ list-style: none
498
+ margin: 0
499
+ padding: 0
500
+
501
+ p
502
+ color: #333
503
+ font-size: 14px
504
+ line-height: 18px
505
+
506
+ a
507
+ color: $primary-color
508
+ text-decoration: none
509
+
510
+ label
511
+ color: #333
512
+ font-size: 11px
513
+ font-weight: 600
514
+ margin-right: 14px
515
+ text-transform: uppercase
516
+
517
+ .pull-left
518
+ float: left
519
+
520
+ .pull-right
521
+ float: right
@@ -0,0 +1,5 @@
1
+ module Spina
2
+ module Template
3
+ VERSION = "0.2.4"
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ require "spina/template/version"
2
+ require 'bourbon'
3
+ require 'neat'
4
+ require 'jquery-fileupload-rails'
5
+
6
+ module Spina
7
+ module Template
8
+ class Engine < ::Rails::Engine
9
+ config.assets.precompile += %w(spina/wysihtml5_textarea.css)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ require 'spina/template/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "spina-template"
8
+ spec.version = Spina::Template::VERSION
9
+ spec.authors = ["Bram Jetten"]
10
+ spec.email = ["bram@denkgroot.com"]
11
+ spec.description = "Template"
12
+ spec.summary = "Spina"
13
+ spec.homepage = "http://www.denkgroot.com"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_development_dependency "bundler", "~> 1.3"
20
+ spec.add_development_dependency "rake"
21
+
22
+ spec.add_dependency "bourbon", "~> 3.2.1"
23
+ spec.add_dependency "neat", "~> 1.5.0"
24
+ spec.add_dependency "coffee-rails"
25
+ spec.add_dependency 'jquery-fileupload-rails'
26
+ end
data/vendor/.DS_Store ADDED
Binary file
Binary file
Binary file
@@ -0,0 +1,85 @@
1
+ /**
2
+ * --------------------------------------------------------------------
3
+ * jQuery customfileinput plugin
4
+ * Author: Scott Jehl, scott@filamentgroup.com
5
+ * Copyright (c) 2009 Filament Group
6
+ * licensed under MIT (filamentgroup.com/examples/mit-license.txt)
7
+ * --------------------------------------------------------------------
8
+ */
9
+ $.fn.customFileInput = function(){
10
+ //apply events and styles for file input element
11
+ var fileInput = $(this)
12
+ .addClass('customfile-input') //add class for CSS
13
+ .mouseover(function(){ upload.addClass('customfile-hover'); })
14
+ .mouseout(function(){ upload.removeClass('customfile-hover'); })
15
+ .focus(function(){
16
+ upload.addClass('customfile-focus');
17
+ fileInput.data('val', fileInput.val());
18
+ })
19
+ .blur(function(){
20
+ upload.removeClass('customfile-focus');
21
+ $(this).trigger('checkChange');
22
+ })
23
+ .bind('disable',function(){
24
+ fileInput.attr('disabled',true);
25
+ upload.addClass('customfile-disabled');
26
+ })
27
+ .bind('enable',function(){
28
+ fileInput.removeAttr('disabled');
29
+ upload.removeClass('customfile-disabled');
30
+ })
31
+ .bind('checkChange', function(){
32
+ if(fileInput.val() && fileInput.val() != fileInput.data('val')){
33
+ fileInput.trigger('change');
34
+ }
35
+ })
36
+ .bind('change',function(){
37
+ //get file name
38
+ var fileName = $(this).val().split(/\\/).pop();
39
+ //get file extension
40
+ var fileExt = 'customfile-ext-' + fileName.split('.').pop().toLowerCase();
41
+ //update the feedback
42
+ uploadFeedback
43
+ .text(fileName) //set feedback text to filename
44
+ .removeClass(uploadFeedback.data('fileExt') || '') //remove any existing file extension class
45
+ .addClass(fileExt) //add file extension class
46
+ .data('fileExt', fileExt) //store file extension for class removal on next change
47
+ .addClass('customfile-feedback-populated'); //add class to show populated state
48
+ //change text of button
49
+ uploadButton.text('Kies een bestand');
50
+ })
51
+ .click(function(){ //for IE and Opera, make sure change fires after choosing a file, using an async callback
52
+ fileInput.data('val', fileInput.val());
53
+ setTimeout(function(){
54
+ fileInput.trigger('checkChange');
55
+ },100);
56
+ });
57
+
58
+ //create custom control container
59
+ var upload = $('<div class="customfile"></div>');
60
+ //create custom control button
61
+ var uploadButton = $('<span class="customfile-button" aria-hidden="true">voeg foto toe</span>').appendTo(upload);
62
+ //create custom control feedback
63
+ var uploadFeedback = $('<span class="customfile-feedback" aria-hidden="true">Geen bestand geselecteerd...</span>').appendTo(upload);
64
+
65
+ //match disabled state
66
+ if(fileInput.is('[disabled]')){
67
+ fileInput.trigger('disable');
68
+ }
69
+
70
+
71
+ //on mousemove, keep file input under the cursor to steal click
72
+ upload
73
+ .mousemove(function(e){
74
+ fileInput.css({
75
+ 'left': e.pageX - upload.offset().left - fileInput.outerWidth() + 20, //position right side 20px right of cursor X)
76
+ 'top': e.pageY - upload.offset().top - $(window).scrollTop() - 3
77
+ });
78
+ })
79
+ .insertAfter(fileInput); //insert after the input
80
+
81
+ fileInput.appendTo(upload);
82
+
83
+ //return jQuery
84
+ return $(this);
85
+ };