plinth 0.0.1.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.codoopts +10 -0
- data/.env +1 -0
- data/.gitignore +23 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +1 -0
- data/Capfile +4 -0
- data/Gemfile +52 -0
- data/Gemfile.lock +243 -0
- data/Guardfile +9 -0
- data/LICENSE +22 -0
- data/Procfile +1 -0
- data/README.md +79 -0
- data/Rakefile +35 -0
- data/app/assets/images/layouts/basic-marketing-site.png +0 -0
- data/app/assets/images/layouts/jumbotron-site.png +0 -0
- data/app/assets/images/rails.png +0 -0
- data/app/assets/javascripts/application.js +17 -0
- data/app/assets/javascripts/base.js.coffee +3 -0
- data/app/assets/javascripts/grids.js.coffee +3 -0
- data/app/assets/javascripts/javascript.js.coffee +3 -0
- data/app/assets/javascripts/lib/modernizr.js +4 -0
- data/app/assets/javascripts/modules.js.coffee +3 -0
- data/app/assets/stylesheets/application-old-ie.css.scss +10 -0
- data/app/assets/stylesheets/application.css.scss +57 -0
- data/app/assets/stylesheets/base/_all.scss +6 -0
- data/app/assets/stylesheets/base/_reset.css.scss +16 -0
- data/app/assets/stylesheets/base/_type.scss +16 -0
- data/app/assets/stylesheets/modules/_coderay.css.scss +171 -0
- data/app/assets/stylesheets/modules/_layout_examples.css.scss +13 -0
- data/app/assets/stylesheets/modules/_webfont_table.css.scss +47 -0
- data/app/assets/stylesheets/vanilla-normal-old-ie.css.scss +11 -0
- data/app/assets/stylesheets/vanilla-normal.css.scss +33 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/base_controller.rb +52 -0
- data/app/controllers/grids_controller.rb +48 -0
- data/app/controllers/javascript_controller.rb +20 -0
- data/app/controllers/javascripts_controller.rb +4 -0
- data/app/controllers/modules_controller.rb +43 -0
- data/app/controllers/ui_controller.rb +2 -0
- data/app/helpers/plinth_helper.rb +33 -0
- data/app/views/base/_webfonts_social_standard.html +429 -0
- data/app/views/base/_webfonts_ss_standard.html +2413 -0
- data/app/views/base/buttons.html.haml +20 -0
- data/app/views/base/forms.html.haml +40 -0
- data/app/views/base/images.html.haml +20 -0
- data/app/views/base/index.html.haml +68 -0
- data/app/views/base/labels.html.haml +22 -0
- data/app/views/base/lists.html.haml +20 -0
- data/app/views/base/webfonts.html.haml +17 -0
- data/app/views/grids/index.html.haml +73 -0
- data/app/views/grids/layouts/basic-marketing-site.haml +69 -0
- data/app/views/grids/layouts/jumbotron-site.haml +92 -0
- data/app/views/grids/layouts.html.haml +9 -0
- data/app/views/layouts/_main_nav.html.haml +15 -0
- data/app/views/layouts/application.html.haml +15 -0
- data/app/views/modules/alerts.html.haml +12 -0
- data/app/views/modules/footer.html.haml +2 -0
- data/app/views/modules/index.html.haml +5 -0
- data/app/views/modules/nav.html.haml +12 -0
- data/app/views/modules/panels.html.haml +3 -0
- data/app/views/modules/tabs.html.haml +58 -0
- data/app/views/old_javascript/close.html.haml +2 -0
- data/app/views/old_javascript/forms.html.haml +2 -0
- data/app/views/old_javascript/ga_events.html.haml +2 -0
- data/app/views/old_javascript/index.html.haml +2 -0
- data/app/views/old_javascript/responsive_resize.html.haml +2 -0
- data/app/views/old_javascript/switch.html.haml +2 -0
- data/app/views/parts/base/_button.haml +3 -0
- data/app/views/parts/base/_button_colours.haml +4 -0
- data/app/views/parts/base/_button_group.haml +4 -0
- data/app/views/parts/base/_button_sizing.haml +3 -0
- data/app/views/parts/base/_button_states.haml +3 -0
- data/app/views/parts/base/_form_example.haml +26 -0
- data/app/views/parts/base/_form_example_horizontal.haml +26 -0
- data/app/views/parts/base/_form_group.haml +10 -0
- data/app/views/parts/base/_form_location.haml +3 -0
- data/app/views/parts/base/_labels.haml +5 -0
- data/app/views/parts/base/_labels_sizing.haml +3 -0
- data/app/views/parts/base/_list.haml +10 -0
- data/app/views/parts/base/_list_action.haml +5 -0
- data/app/views/parts/base/_list_nav.haml +12 -0
- data/app/views/parts/base/_list_unset.haml +10 -0
- data/app/views/parts/base/_type_body.haml +2 -0
- data/app/views/parts/base/_type_headings.haml +5 -0
- data/app/views/parts/base/_type_helpers.haml +3 -0
- data/app/views/parts/base/_type_links.haml +9 -0
- data/app/views/parts/base/_type_shouts.haml +4 -0
- data/app/views/parts/grids/_example_layout_1.haml +10 -0
- data/app/views/parts/grids/_live_grid.haml +29 -0
- data/app/views/parts/modules/_alerts.haml +11 -0
- data/app/views/parts/modules/_nav_footer.haml +34 -0
- data/app/views/parts/modules/_nav_header.haml +18 -0
- data/app/views/parts/modules/_panels.haml +9 -0
- data/app/views/parts/modules/_tabs_minimal.haml +11 -0
- data/app/views/parts/modules/_tabs_simple_group.haml +11 -0
- data/app/views/parts/modules/_tabs_simple_group_toggle.haml +11 -0
- data/app/views/parts/modules/_tabs_toggle.haml +5 -0
- data/app/views/parts/modules/_tabs_traditional.haml +11 -0
- data/app/views/shared/_placeholder_text.html.haml +1 -0
- data/app/views/shared/_title.html.haml +8 -0
- data/app/views/shared/_ui_nav.html.haml +5 -0
- data/app/views/ui/alert.html.haml +35 -0
- data/app/views/ui/buttons.html.haml +116 -0
- data/app/views/ui/footer.html.haml +69 -0
- data/app/views/ui/forms/_vertical_form.haml +7 -0
- data/app/views/ui/forms.html.haml +59 -0
- data/app/views/ui/grids.html.haml +18 -0
- data/app/views/ui/index.html.haml +5 -0
- data/app/views/ui/labels.html.haml +15 -0
- data/app/views/ui/modules/panel.html.haml +3 -0
- data/app/views/ui/nav.html.haml +48 -0
- data/app/views/ui/tabs.html.haml +171 -0
- data/app/views/ui/typography.html.haml +118 -0
- data/db/development.sqlite3 +0 -0
- data/db/seeds.rb +7 -0
- data/doc/README_FOR_APP +2 -0
- data/lib/assets/.gitkeep +0 -0
- data/lib/plinth/version.rb +3 -0
- data/lib/plinth.rb +11 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/templates/haml/scaffold/_form.html.haml +8 -0
- data/log/.gitkeep +0 -0
- data/plinth.gemspec +33 -0
- data/public/404.html +26 -0
- data/public/422.html +26 -0
- data/public/500.html +25 -0
- data/public/favicon.ico +0 -0
- data/public/javascripts/LICENSE.html +158 -0
- data/public/javascripts/README.md.html +163 -0
- data/public/javascripts/assets/codo.css +1 -0
- data/public/javascripts/assets/codo.js +21 -0
- data/public/javascripts/assets/search_data.js +1 -0
- data/public/javascripts/class_index.html +215 -0
- data/public/javascripts/class_list.html +58 -0
- data/public/javascripts/classes/Close.html +259 -0
- data/public/javascripts/classes/GAEvent.html +231 -0
- data/public/javascripts/classes/ResizeHandler.html +225 -0
- data/public/javascripts/classes/Switch.html +318 -0
- data/public/javascripts/classes/TBGForm.html +373 -0
- data/public/javascripts/extra_list.html +36 -0
- data/public/javascripts/file_list.html +74 -0
- data/public/javascripts/files/styleguide/plugins/tbg-close.js.coffee.html +160 -0
- data/public/javascripts/files/styleguide/plugins/tbg-forms.js.coffee.html +160 -0
- data/public/javascripts/files/styleguide/plugins/tbg-ga-events.js.coffee.html +160 -0
- data/public/javascripts/files/styleguide/plugins/tbg-respinsiveresize.js.coffee.html +160 -0
- data/public/javascripts/files/styleguide/plugins/tbg-switch.js.coffee.html +160 -0
- data/public/javascripts/index.html +14 -0
- data/public/javascripts/method_list.html +187 -0
- data/public/javascripts/mixin_list.html +28 -0
- data/public/robots.txt +5 -0
- data/script/rails +6 -0
- data/spec/javascripts/fixtures/plugins/tbg-close_fixture.html.haml +4 -0
- data/spec/javascripts/fixtures/plugins/tbg-forms_fixture.html.haml +12 -0
- data/spec/javascripts/fixtures/plugins/tbg-ga-events_fixture.html.haml +9 -0
- data/spec/javascripts/fixtures/plugins/tbg-switch_fixture.html.haml +11 -0
- data/spec/javascripts/plugins/tbg-close_spec.js.coffee +54 -0
- data/spec/javascripts/plugins/tbg-forms_spec.js.coffee +87 -0
- data/spec/javascripts/plugins/tbg-ga-events_spec.js.coffee +83 -0
- data/spec/javascripts/plugins/tbg-switch_spec.js.coffee +96 -0
- data/spec/javascripts/spec.js.coffee +2 -0
- data/vendor/assets/fonts/ss-social-circle.eot +0 -0
- data/vendor/assets/fonts/ss-social-circle.svg +139 -0
- data/vendor/assets/fonts/ss-social-circle.ttf +0 -0
- data/vendor/assets/fonts/ss-social-circle.woff +0 -0
- data/vendor/assets/fonts/ss-social-regular.eot +0 -0
- data/vendor/assets/fonts/ss-social-regular.svg +133 -0
- data/vendor/assets/fonts/ss-social-regular.ttf +0 -0
- data/vendor/assets/fonts/ss-social-regular.woff +0 -0
- data/vendor/assets/fonts/ss-social.js +75 -0
- data/vendor/assets/fonts/ss-standard.eot +0 -0
- data/vendor/assets/fonts/ss-standard.js +75 -0
- data/vendor/assets/fonts/ss-standard.svg +207 -0
- data/vendor/assets/fonts/ss-standard.ttf +0 -0
- data/vendor/assets/fonts/ss-standard.woff +0 -0
- data/vendor/assets/images/background.png +0 -0
- data/vendor/assets/images/logos/sb-logo-white.png +0 -0
- data/vendor/assets/images/logos/sb-logo-white.svg +5 -0
- data/vendor/assets/images/middleman.png +0 -0
- data/vendor/assets/index.html.haml +8 -0
- data/vendor/assets/javascripts/.gitkeep +0 -0
- data/vendor/assets/javascripts/plinth/lib/handlebars.js +3 -0
- data/vendor/assets/javascripts/plinth/lib/jquery.fitvids.js +81 -0
- data/vendor/assets/javascripts/plinth/lib/ss-social.js +75 -0
- data/vendor/assets/javascripts/plinth/lib/ss-standard.js +78 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/assets/codo.css +1 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/assets/codo.js +21 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/assets/search_data.js +1 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/class_index.html +194 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/class_list.html +58 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/classes/Close.html +215 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/classes/GAEvent.html +235 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/classes/ResizeHandler.html +192 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/classes/Switch.html +233 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/classes/TBGForm.html +318 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/extra_list.html +30 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/file_list.html +58 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/files/tbg-close.js.coffee.html +154 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/files/tbg-forms.js.coffee.html +154 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/files/tbg-ga-events.js.coffee.html +154 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/files/tbg-respinsiveresize.js.coffee.html +154 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/files/tbg-switch.js.coffee.html +154 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/index.html +14 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/method_list.html +163 -0
- data/vendor/assets/javascripts/plinth/plugins/doc/mixin_list.html +28 -0
- data/vendor/assets/javascripts/plinth/plugins/tbg-close.js.coffee +97 -0
- data/vendor/assets/javascripts/plinth/plugins/tbg-forms.js.coffee +156 -0
- data/vendor/assets/javascripts/plinth/plugins/tbg-ga-events.js.coffee +107 -0
- data/vendor/assets/javascripts/plinth/plugins/tbg-respinsiveresize.js.coffee +73 -0
- data/vendor/assets/javascripts/plinth/plugins/tbg-switch.js.coffee +121 -0
- data/vendor/assets/stylesheets/.gitkeep +0 -0
- data/vendor/assets/stylesheets/_functions.scss +28 -0
- data/vendor/assets/stylesheets/_mixins.css.scss +273 -0
- data/vendor/assets/stylesheets/_settings.css.scss +120 -0
- data/vendor/assets/stylesheets/plinth/base/_all.css.scss +7 -0
- data/vendor/assets/stylesheets/plinth/base/_buttons.css.scss +166 -0
- data/vendor/assets/stylesheets/plinth/base/_form.css.scss +196 -0
- data/vendor/assets/stylesheets/plinth/base/_labels.css.scss +58 -0
- data/vendor/assets/stylesheets/plinth/base/_lists.css.scss +57 -0
- data/vendor/assets/stylesheets/plinth/base/_reset.css.scss +284 -0
- data/vendor/assets/stylesheets/plinth/base/_type.css.scss +328 -0
- data/vendor/assets/stylesheets/plinth/base/webfonts/_all.css.scss +2 -0
- data/vendor/assets/stylesheets/plinth/base/webfonts/ss-social.css.scss +57 -0
- data/vendor/assets/stylesheets/plinth/base/webfonts/ss-standard.css.scss +48 -0
- data/vendor/assets/stylesheets/plinth/grid/_grid.css.scss +127 -0
- data/vendor/assets/stylesheets/plinth/modules/_alert.css.scss +71 -0
- data/vendor/assets/stylesheets/plinth/modules/_all-grid.css.scss +1 -0
- data/vendor/assets/stylesheets/plinth/modules/_all-no-grid.css.scss +4 -0
- data/vendor/assets/stylesheets/plinth/modules/_footer.css.scss +93 -0
- data/vendor/assets/stylesheets/plinth/modules/_nav.css.scss +106 -0
- data/vendor/assets/stylesheets/plinth/modules/_panel.css.scss +28 -0
- data/vendor/assets/stylesheets/plinth/modules/_switch.css.scss +88 -0
- data/vendor/assets/stylesheets/plinth.css.scss +15 -0
- data/vendor/assets/views/buttons/_buttons.haml +9 -0
- data/vendor/assets/views/forms/_vertical_form.haml +7 -0
- data/vendor/assets/views/type/_headings.haml +6 -0
- data/vendor/assets/views/type/_paragraphs.haml +4 -0
- metadata +537 -0
@@ -0,0 +1,163 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset='UTF-8'>
|
5
|
+
<title>CoffeeScript API Documentation</title>
|
6
|
+
<link rel='stylesheet' href='assets/codo.css' type='text/css'>
|
7
|
+
<script src='assets/codo.js'></script>
|
8
|
+
<script src='assets/search_data.js'></script>
|
9
|
+
</head>
|
10
|
+
<body class='list'>
|
11
|
+
<div class='list' id='content'>
|
12
|
+
<h1 class='full_list_header'>Method List</h1>
|
13
|
+
<nav>
|
14
|
+
<a target='_self' href='class_list.html'>Classes</a>
|
15
|
+
<a target='_self' href='file_list.html'>Files</a>
|
16
|
+
<a target='_self' href='method_list.html'>Methods</a>
|
17
|
+
<a target='_self' href='extra_list.html'>Extras</a>
|
18
|
+
</nav>
|
19
|
+
<div id='search'>
|
20
|
+
Search:
|
21
|
+
<input type='text'>
|
22
|
+
</div>
|
23
|
+
<ul>
|
24
|
+
<li>
|
25
|
+
<a href='classes/Switch.html#_closeGroup-instance' target='main' title='_closeGroup'>
|
26
|
+
#_closeGroup
|
27
|
+
</a>
|
28
|
+
<small>
|
29
|
+
(Switch)
|
30
|
+
</small>
|
31
|
+
</li>
|
32
|
+
<li>
|
33
|
+
<a href='classes/Switch.html#_getContent-instance' target='main' title='_getContent'>
|
34
|
+
#_getContent
|
35
|
+
</a>
|
36
|
+
<small>
|
37
|
+
(Switch)
|
38
|
+
</small>
|
39
|
+
</li>
|
40
|
+
<li>
|
41
|
+
<a href='classes/Switch.html#changeStateTo-instance' target='main' title='changeStateTo'>
|
42
|
+
#changeStateTo
|
43
|
+
</a>
|
44
|
+
<small>
|
45
|
+
(Switch)
|
46
|
+
</small>
|
47
|
+
</li>
|
48
|
+
<li>
|
49
|
+
<a href='classes/Switch.html#click-instance' target='main' title='click'>
|
50
|
+
#click
|
51
|
+
</a>
|
52
|
+
<small>
|
53
|
+
(Switch)
|
54
|
+
</small>
|
55
|
+
</li>
|
56
|
+
<li>
|
57
|
+
<a href='classes/Close.html#close-instance' target='main' title='close'>
|
58
|
+
#close
|
59
|
+
</a>
|
60
|
+
<small>
|
61
|
+
(Close)
|
62
|
+
</small>
|
63
|
+
</li>
|
64
|
+
<li>
|
65
|
+
<a href='files/tbg-close.js.coffee.html#plugin-file' target='main' title='plugin'>
|
66
|
+
.plugin
|
67
|
+
</a>
|
68
|
+
<small>
|
69
|
+
(tbg-close.js.coffee)
|
70
|
+
</small>
|
71
|
+
</li>
|
72
|
+
<li>
|
73
|
+
<a href='files/tbg-forms.js.coffee.html#plugin-file' target='main' title='plugin'>
|
74
|
+
.plugin
|
75
|
+
</a>
|
76
|
+
<small>
|
77
|
+
(tbg-forms.js.coffee)
|
78
|
+
</small>
|
79
|
+
</li>
|
80
|
+
<li>
|
81
|
+
<a href='files/tbg-ga-events.js.coffee.html#plugin-file' target='main' title='plugin'>
|
82
|
+
.plugin
|
83
|
+
</a>
|
84
|
+
<small>
|
85
|
+
(tbg-ga-events.js.coffee)
|
86
|
+
</small>
|
87
|
+
</li>
|
88
|
+
<li>
|
89
|
+
<a href='files/tbg-respinsiveresize.js.coffee.html#plugin-file' target='main' title='plugin'>
|
90
|
+
.plugin
|
91
|
+
</a>
|
92
|
+
<small>
|
93
|
+
(tbg-respinsiveresize.js.coffee)
|
94
|
+
</small>
|
95
|
+
</li>
|
96
|
+
<li>
|
97
|
+
<a href='files/tbg-switch.js.coffee.html#plugin-file' target='main' title='plugin'>
|
98
|
+
.plugin
|
99
|
+
</a>
|
100
|
+
<small>
|
101
|
+
(tbg-switch.js.coffee)
|
102
|
+
</small>
|
103
|
+
</li>
|
104
|
+
<li>
|
105
|
+
<a href='classes/ResizeHandler.html#resize-instance' target='main' title='resize'>
|
106
|
+
#resize
|
107
|
+
</a>
|
108
|
+
<small>
|
109
|
+
(ResizeHandler)
|
110
|
+
</small>
|
111
|
+
</li>
|
112
|
+
<li>
|
113
|
+
<a href='classes/TBGForm.html#send-instance' target='main' title='send'>
|
114
|
+
#send
|
115
|
+
</a>
|
116
|
+
<small>
|
117
|
+
(TBGForm)
|
118
|
+
</small>
|
119
|
+
</li>
|
120
|
+
<li>
|
121
|
+
<a href='classes/GAEvent.html#sendEvent-instance' target='main' title='sendEvent'>
|
122
|
+
#sendEvent
|
123
|
+
</a>
|
124
|
+
<small>
|
125
|
+
(GAEvent)
|
126
|
+
</small>
|
127
|
+
</li>
|
128
|
+
<li>
|
129
|
+
<a href='classes/TBGForm.html#sendRequest-instance' target='main' title='sendRequest'>
|
130
|
+
#sendRequest
|
131
|
+
</a>
|
132
|
+
<small>
|
133
|
+
(TBGForm)
|
134
|
+
</small>
|
135
|
+
</li>
|
136
|
+
<li>
|
137
|
+
<a href='classes/TBGForm.html#showErrors-instance' target='main' title='showErrors'>
|
138
|
+
#showErrors
|
139
|
+
</a>
|
140
|
+
<small>
|
141
|
+
(TBGForm)
|
142
|
+
</small>
|
143
|
+
</li>
|
144
|
+
<li>
|
145
|
+
<a href='classes/TBGForm.html#showSuccess-instance' target='main' title='showSuccess'>
|
146
|
+
#showSuccess
|
147
|
+
</a>
|
148
|
+
<small>
|
149
|
+
(TBGForm)
|
150
|
+
</small>
|
151
|
+
</li>
|
152
|
+
<li>
|
153
|
+
<a href='classes/ResizeHandler.html#size-instance' target='main' title='size'>
|
154
|
+
#size
|
155
|
+
</a>
|
156
|
+
<small>
|
157
|
+
(ResizeHandler)
|
158
|
+
</small>
|
159
|
+
</li>
|
160
|
+
</ul>
|
161
|
+
</div>
|
162
|
+
</body>
|
163
|
+
</html>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset='UTF-8'>
|
5
|
+
<title>CoffeeScript API Documentation</title>
|
6
|
+
<link rel='stylesheet' href='assets/codo.css' type='text/css'>
|
7
|
+
<script src='assets/codo.js'></script>
|
8
|
+
<script src='assets/search_data.js'></script>
|
9
|
+
</head>
|
10
|
+
<body class='list'>
|
11
|
+
<div class='list tree' id='content'>
|
12
|
+
<h1 class='full_list_header'>Mixin List</h1>
|
13
|
+
<nav>
|
14
|
+
<a target='_self' href='class_list.html'>Classes</a>
|
15
|
+
<a target='_self' href='file_list.html'>Files</a>
|
16
|
+
<a target='_self' href='method_list.html'>Methods</a>
|
17
|
+
<a target='_self' href='extra_list.html'>Extras</a>
|
18
|
+
</nav>
|
19
|
+
<div id='search'>
|
20
|
+
Search:
|
21
|
+
<input type='text'>
|
22
|
+
</div>
|
23
|
+
<ul>
|
24
|
+
</ul>
|
25
|
+
|
26
|
+
</div>
|
27
|
+
</body>
|
28
|
+
</html>
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# ============================================================
|
2
|
+
# TBG close v0.0.1
|
3
|
+
# http://URL
|
4
|
+
# ============================================================
|
5
|
+
# Copyright 2012 The Beans Group
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
plugin = ($)->
|
21
|
+
|
22
|
+
"use strict"
|
23
|
+
|
24
|
+
# CLOSE CLASS DEFINITION
|
25
|
+
#
|
26
|
+
# @example How to use the class
|
27
|
+
# closeInstance = new Close $('.my-element')
|
28
|
+
# # Close element
|
29
|
+
# closeInstance.close()
|
30
|
+
#
|
31
|
+
# @example How to use the class with jQuery
|
32
|
+
# $('.my-element').close('close')
|
33
|
+
#
|
34
|
+
# @example How to ensure plugin self initialises on element
|
35
|
+
# <div data-close> Close me </div>
|
36
|
+
#
|
37
|
+
class Close
|
38
|
+
|
39
|
+
# Construct a new Close instance
|
40
|
+
#
|
41
|
+
# @param [Object] element HTMLElement on which we will try to close
|
42
|
+
#
|
43
|
+
constructor: ( element ) ->
|
44
|
+
$el = $(element)
|
45
|
+
@$target = @_getTarget $el
|
46
|
+
|
47
|
+
# Expose the Class
|
48
|
+
_constructor: Close
|
49
|
+
|
50
|
+
# Close the element - Triggers 'close' event on this.$target then removes this.$target
|
51
|
+
#
|
52
|
+
close : ->
|
53
|
+
if not @$target then return false
|
54
|
+
@$target.trigger 'close'
|
55
|
+
@$target.remove()
|
56
|
+
|
57
|
+
# Get the target element to be closed
|
58
|
+
#
|
59
|
+
# @private
|
60
|
+
# @param [Object] $el jQuery wrapped HTMLElement to get target to be closed from
|
61
|
+
# @return [Object] jQuery wrapped HTMLElement to be closed
|
62
|
+
#
|
63
|
+
_getTarget: ($el) ->
|
64
|
+
# Get target from data element
|
65
|
+
target = (dataEl = $( $el.attr('data-close') )).length && dataEl
|
66
|
+
# else get from href
|
67
|
+
if not target then target = (dataEl = $( $el.attr('href') )).length && dataEl
|
68
|
+
target
|
69
|
+
|
70
|
+
# CLOSE PLUGIN DEFINITION
|
71
|
+
# ==========================
|
72
|
+
|
73
|
+
$.fn.close = ( option ) ->
|
74
|
+
this.each ->
|
75
|
+
$this = $(@)
|
76
|
+
data = $this.data 'closePlugin'
|
77
|
+
if !data then $this.data 'closePlugin', (data = new Close @)
|
78
|
+
if typeof option is 'string' then data[option]()
|
79
|
+
|
80
|
+
$.fn.close.Constructor = Close
|
81
|
+
|
82
|
+
|
83
|
+
# DATA API
|
84
|
+
# ===================================
|
85
|
+
|
86
|
+
$ ->
|
87
|
+
$('body').on 'click.close.data-api', '[data-close]', ( e ) ->
|
88
|
+
$(e.target).close('close')
|
89
|
+
e.preventDefault()
|
90
|
+
|
91
|
+
do ( plugin ) ->
|
92
|
+
if typeof define is 'function' and define.amd
|
93
|
+
# AMD. Register as an anonymous module.
|
94
|
+
define(['jquery'], plugin);
|
95
|
+
else
|
96
|
+
# Browser globals
|
97
|
+
plugin(jQuery)
|
@@ -0,0 +1,156 @@
|
|
1
|
+
# ============================================================
|
2
|
+
# Forms v0.0.1
|
3
|
+
# ============================================================
|
4
|
+
# Copyright 2012 The Beans Group
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
|
20
|
+
plugin = ($)->
|
21
|
+
|
22
|
+
"use strict"
|
23
|
+
|
24
|
+
# FORM CLASS DEFINITION
|
25
|
+
#
|
26
|
+
# @example How to use the class
|
27
|
+
# formInstance = new TBGForm $('.my-element')
|
28
|
+
# # Send form
|
29
|
+
# formInstance.send()
|
30
|
+
#
|
31
|
+
# @example How to use the class with jQuery
|
32
|
+
# $('.my-element').send()
|
33
|
+
#
|
34
|
+
# @example How to ensure plugin self initialises on element
|
35
|
+
# <form data-forms="/endpoint"> ... </form>
|
36
|
+
#
|
37
|
+
class TBGForm
|
38
|
+
|
39
|
+
# Construct a new TBGForm instance
|
40
|
+
#
|
41
|
+
# @param [Object] element form we will attach the TBGForm to
|
42
|
+
#
|
43
|
+
constructor: ( element ) ->
|
44
|
+
@form = $(element)
|
45
|
+
@send()
|
46
|
+
|
47
|
+
_constructor: TBGForm
|
48
|
+
|
49
|
+
# Send the form, calls sendRequest passing form data and url to post to
|
50
|
+
#
|
51
|
+
send : ->
|
52
|
+
if not (url = @form.data('forms') || @form.attr('action')) then return false
|
53
|
+
@sendRequest @form.serialize(), url
|
54
|
+
|
55
|
+
# Execute ajax post
|
56
|
+
#
|
57
|
+
# @param [String] data serialized form data
|
58
|
+
# @param [String] url URL to post form to
|
59
|
+
#
|
60
|
+
sendRequest : (data, url)->
|
61
|
+
$.ajax
|
62
|
+
type: 'POST'
|
63
|
+
url: url
|
64
|
+
data: data
|
65
|
+
dataType: "json"
|
66
|
+
success: (successData)=>
|
67
|
+
@showSuccess(successData)
|
68
|
+
error: (err) =>
|
69
|
+
@showErrors $.parseJSON(err.responseText)
|
70
|
+
|
71
|
+
# Handle form post errors - called from sendRequest error callback.
|
72
|
+
#
|
73
|
+
# Clear previous errors, add error classes to relevent fields and labels and add error message summary
|
74
|
+
#
|
75
|
+
# @param [Object] errors errors object
|
76
|
+
#
|
77
|
+
showErrors :( errors )->
|
78
|
+
@form.find('.form-msg.is-error').remove()
|
79
|
+
@form.find('.is-error').removeClass('is-error')
|
80
|
+
|
81
|
+
for field, error of errors
|
82
|
+
$this = @form.find("[id$=#{field}]").addClass('is-error')
|
83
|
+
if not msg = ($this.siblings(".form-msg"))[0] then msg = $("<small class='form-msg'></small>").insertAfter($this)
|
84
|
+
msg.text( "#{field} " + error.join(' & ') ).addClass('is-error')
|
85
|
+
$this.siblings('label').addClass('is-error')
|
86
|
+
|
87
|
+
# Handle form post success - called from sendRequest success callback.
|
88
|
+
#
|
89
|
+
# Pass empty error object to showErrors; if Handlebars defined
|
90
|
+
# call _showSuccessTemplated with data object otherwise call
|
91
|
+
# _showSuccessPlain; trigger 'tbgform-success' event with form data; fade form if necessary
|
92
|
+
#
|
93
|
+
# @param [Object] data response from ajax post
|
94
|
+
#
|
95
|
+
showSuccess: (data)->
|
96
|
+
@showErrors {}
|
97
|
+
if Handlebars?
|
98
|
+
@_showSuccessTemplated data
|
99
|
+
else
|
100
|
+
@_showSuccessPlain()
|
101
|
+
$('body').trigger 'tbgform-success', [@form]
|
102
|
+
if @form.data 'formsSuccessFormfade' then @form.fadeOut()
|
103
|
+
|
104
|
+
# Display compiled success template
|
105
|
+
#
|
106
|
+
# Compile template from data-formsSuccessContent; display with data object
|
107
|
+
#
|
108
|
+
# @private
|
109
|
+
# @param [Object] data data object from showSuccess
|
110
|
+
#
|
111
|
+
_showSuccessTemplated: (data)->
|
112
|
+
template = Handlebars.compile @form.data('formsSuccessContent')
|
113
|
+
successArea = $(@form.data 'formsSuccessReplace')
|
114
|
+
successArea.fadeOut().html( template(data) ).fadeIn()
|
115
|
+
|
116
|
+
# Display success with replaced content
|
117
|
+
#
|
118
|
+
# Display data-formsSuccessContent HTML
|
119
|
+
#
|
120
|
+
# @private
|
121
|
+
#
|
122
|
+
_showSuccessPlain: ->
|
123
|
+
@successArea = $(@form.data 'formsSuccessReplace')
|
124
|
+
@successHTML = @form.data 'formsSuccessContent'
|
125
|
+
@successArea.fadeOut().html(@successHTML).fadeIn()
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
# DOWNLOADFORM PLUGIN DEFINITION
|
131
|
+
# ==========================
|
132
|
+
|
133
|
+
$.fn.forms = ( option ) ->
|
134
|
+
this.each ->
|
135
|
+
$this = $(@)
|
136
|
+
data = $this.data 'formsPlugin'
|
137
|
+
if !data then $this.data 'formsPlugin', (data = new TBGForm @) else data[option]()
|
138
|
+
|
139
|
+
$.fn.forms.Constructor = TBGForm
|
140
|
+
|
141
|
+
|
142
|
+
# DATA API
|
143
|
+
# ===================================
|
144
|
+
|
145
|
+
$ ->
|
146
|
+
$('body').on 'submit.forms.data-api', '[data-forms]' , ( e ) ->
|
147
|
+
$(e.target).forms('send')
|
148
|
+
return false
|
149
|
+
|
150
|
+
do ( plugin ) ->
|
151
|
+
if typeof define is 'function' and define.amd
|
152
|
+
# AMD. Register as an anonymous module.
|
153
|
+
define(['jquery'], plugin);
|
154
|
+
else
|
155
|
+
# Browser globals
|
156
|
+
plugin(jQuery)
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# ============================================================
|
2
|
+
# GAEvents v0.0.0
|
3
|
+
# http://URL
|
4
|
+
# ============================================================
|
5
|
+
# Copyright 2012 The Beans Group
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
plugin = ($)->
|
21
|
+
|
22
|
+
"use strict"
|
23
|
+
|
24
|
+
# GAEVENT CLASS DEFINITION
|
25
|
+
#
|
26
|
+
# @example How to use with Haml
|
27
|
+
# %a{ :href => '/some/link', :class => 'btn', :data => { :gaevent => 'category|action|opt_label|opt_value|opt_noninteraction' } }
|
28
|
+
# # See: https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide
|
29
|
+
#
|
30
|
+
# @example How to ensure plugin self initialises on element
|
31
|
+
# <form data-gaevent-load="true"> ... </form>
|
32
|
+
#
|
33
|
+
class GAEvent
|
34
|
+
|
35
|
+
# Construct a GAEvent instance - split the event content string and pass to sendEvent
|
36
|
+
#
|
37
|
+
# @param [Object] element HTMLElement
|
38
|
+
# @param [String] eventcontent Pipe delimited string of event content
|
39
|
+
#
|
40
|
+
constructor: ( element, @eventcontent ) ->
|
41
|
+
$el = $(element)
|
42
|
+
@sendEvent (if typeof eventcontent.split('|') isnt "array" then eventcontent.split('|') else [eventcontent])
|
43
|
+
|
44
|
+
_constructor: GAEvent
|
45
|
+
|
46
|
+
# Send the event to Google Analytics
|
47
|
+
#
|
48
|
+
# @param [Array] data If Google Analytics _gaq array defined then push data array after inserting '_trackEvent' string at beginning of data array
|
49
|
+
#
|
50
|
+
sendEvent : (data)->
|
51
|
+
data.unshift('_trackEvent')
|
52
|
+
_gaq?.push data
|
53
|
+
|
54
|
+
# Remove data and data attributes from jQuery object
|
55
|
+
#
|
56
|
+
# @param [Object] $el jQuery wrapped HTMLElement from which to remove data
|
57
|
+
# @param [String] ev Data string to be removed
|
58
|
+
#
|
59
|
+
removeData = ( $el, ev )->
|
60
|
+
$el.removeAttr('data-' + ev)
|
61
|
+
$el.removeData(ev)
|
62
|
+
|
63
|
+
|
64
|
+
# GAEVENT PLUGIN DEFINITION
|
65
|
+
# ==========================
|
66
|
+
|
67
|
+
$.fn.gaEvent = ( option , type = "gaevent") ->
|
68
|
+
this.each ->
|
69
|
+
$this = $(@)
|
70
|
+
$this = if ($t = $(this)).is("[data-#{type}]") then $t else $t.closest("[data-#{type}]")
|
71
|
+
data = $this.data 'gaeventplugin'
|
72
|
+
if not (eventContent= $this.data type ) then return removeData($this, type)
|
73
|
+
if !data then $this.data 'gaeventplugin', (data = new GAEvent @, eventContent)
|
74
|
+
if typeof option is 'string' then data[option].call $this
|
75
|
+
|
76
|
+
$.fn.gaEvent.Constructor = GAEvent
|
77
|
+
|
78
|
+
# DATA API
|
79
|
+
# ===================================
|
80
|
+
|
81
|
+
# On document ready, delegate a click handler on the body for 'click.gaEvent.data-api'
|
82
|
+
# event with target of '[data-gaevent]' and attach plugin; attach a handler for
|
83
|
+
# 'tbgform-success.gaEvent.data-api' event and attach plugin; attach plugin to each
|
84
|
+
# element with '[data-gaevent-load]' attribute
|
85
|
+
#
|
86
|
+
$ ->
|
87
|
+
|
88
|
+
$('body').on 'click.gaEvent.data-api', '[data-gaevent]' , ( e ) ->
|
89
|
+
$this = $(e.target)
|
90
|
+
$this.gaEvent()
|
91
|
+
|
92
|
+
$('body').on 'tbgform-success.gaEvent.data-api', (e, $form)->
|
93
|
+
$form.gaEvent null, 'gaevent-form'
|
94
|
+
|
95
|
+
# Can't turn this off via the data API
|
96
|
+
# @todo Enable Data API ga-event-load method
|
97
|
+
$('[data-gaevent-load]').each ->
|
98
|
+
$(this).gaEvent null, 'gaevent-load'
|
99
|
+
|
100
|
+
|
101
|
+
do ( plugin ) ->
|
102
|
+
if typeof define is 'function' and define.amd
|
103
|
+
# AMD. Register as an anonymous module.
|
104
|
+
define(['jquery'], plugin)
|
105
|
+
else
|
106
|
+
# Browser globals
|
107
|
+
plugin(jQuery)
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# ============================================================
|
2
|
+
# TBG Responsive Resize v0.0.1
|
3
|
+
# http://URL
|
4
|
+
# ============================================================
|
5
|
+
# Copyright 2012 The Beans Group
|
6
|
+
#
|
7
|
+
# This plugin gives an event that is only fired once abrowser resize
|
8
|
+
# finished. This stops your 'resize' event handler being called
|
9
|
+
# continuously during a resize.
|
10
|
+
#
|
11
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
12
|
+
# you may not use this file except in compliance with the License.
|
13
|
+
# You may obtain a copy of the License at
|
14
|
+
#
|
15
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
16
|
+
#
|
17
|
+
# Unless required by applicable law or agreed to in writing, software
|
18
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
19
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
20
|
+
# See the License for the specific language governing permissions and
|
21
|
+
# limitations under the License.
|
22
|
+
#
|
23
|
+
|
24
|
+
plugin = ($)->
|
25
|
+
|
26
|
+
"use strict"
|
27
|
+
|
28
|
+
# RESIZEHANDLER CLASS DEFINITION
|
29
|
+
#
|
30
|
+
# @example How to use the class
|
31
|
+
# resizeHandlerInstance = new ResizeHandler()
|
32
|
+
#
|
33
|
+
class ResizeHandler
|
34
|
+
|
35
|
+
# Construct a new ResizeHandler instance
|
36
|
+
#
|
37
|
+
# Create resizeEvent method to trigger 'responsiveResize' event with current size
|
38
|
+
#
|
39
|
+
constructor: ->
|
40
|
+
$window = $(window)
|
41
|
+
@resizeEvent = =>
|
42
|
+
$window.trigger 'responsiveResize', @size()
|
43
|
+
@resizeTimer = null
|
44
|
+
|
45
|
+
# Set a timeout to call resizeEvent after 100ms, clearing existing timeout if one set
|
46
|
+
#
|
47
|
+
resize: ->
|
48
|
+
if @resizeTimer then clearTimeout @resizeTimer
|
49
|
+
@resizeTimer = setTimeout @resizeEvent, 100
|
50
|
+
|
51
|
+
# Get a string representation of grid name
|
52
|
+
#
|
53
|
+
# Grid name set in CSS content on body::after pseudo-element
|
54
|
+
#
|
55
|
+
# @return [String] Grid name if available or empty string
|
56
|
+
#
|
57
|
+
size: ->
|
58
|
+
if not window.getComputedStyle? then return ''
|
59
|
+
window.getComputedStyle(document.body,':after').getPropertyValue('content').replace('-','') || ''
|
60
|
+
|
61
|
+
# Create instance of ResizeHandler on document ready, call resize() on window 'resize' event
|
62
|
+
#
|
63
|
+
$ ->
|
64
|
+
resizeHandler = new ResizeHandler()
|
65
|
+
$(window).on 'resize', ()=> resizeHandler.resize()
|
66
|
+
|
67
|
+
do ( plugin ) ->
|
68
|
+
if typeof define is 'function' and define.amd
|
69
|
+
# AMD. Register as an anonymous module.
|
70
|
+
define(['jquery'], plugin);
|
71
|
+
else
|
72
|
+
# Browser globals
|
73
|
+
plugin(jQuery)
|