compass_formalize 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -4
- data/README.md +31 -0
- data/compass_formalize.gemspec +2 -2
- data/stylesheets/_formalize.sass +226 -170
- data/templates/{dojo → common}/button.png +0 -0
- data/templates/{dojo → common}/select_arrow.gif +0 -0
- data/templates/dojo/dojo.formalize.js +46 -19
- data/templates/dojo/dojo.formalize.min.js +1 -1
- data/templates/dojo/manifest.rb +5 -0
- data/templates/extjs/extjs.formalize.js +48 -25
- data/templates/extjs/extjs.formalize.min.js +1 -1
- data/templates/jquery-legacy/jquery.formalize.legacy.js +187 -0
- data/templates/jquery-legacy/jquery.formalize.legacy.min.js +1 -0
- data/templates/jquery-legacy/manifest.rb +42 -0
- data/templates/jquery/jquery.formalize.js +42 -20
- data/templates/jquery/jquery.formalize.min.js +1 -1
- data/templates/jquery/manifest.rb +6 -1
- data/templates/mootools/manifest.rb +5 -0
- data/templates/mootools/mootools.formalize.js +49 -20
- data/templates/mootools/mootools.formalize.min.js +1 -1
- data/templates/prototype/manifest.rb +5 -0
- data/templates/prototype/prototype.formalize.js +43 -23
- data/templates/prototype/prototype.formalize.min.js +1 -1
- data/templates/yui/manifest.rb +5 -0
- data/templates/yui/yui.formalize.js +57 -43
- data/templates/yui/yui.formalize.min.js +1 -1
- metadata +11 -40
- data/templates/extjs/button.png +0 -0
- data/templates/extjs/select_arrow.gif +0 -0
- data/templates/jquery/button.png +0 -0
- data/templates/jquery/select_arrow.gif +0 -0
- data/templates/mootools/button.png +0 -0
- data/templates/mootools/select_arrow.gif +0 -0
- data/templates/prototype/button.png +0 -0
- data/templates/prototype/select_arrow.gif +0 -0
- data/templates/yui/button.png +0 -0
- data/templates/yui/select_arrow.gif +0 -0
@@ -1,36 +1,42 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/*
|
2
|
+
Formalize - version 1.2
|
3
|
+
|
4
|
+
Note: This file depends on the jQuery library.
|
5
|
+
*/
|
4
6
|
|
5
7
|
// Module pattern:
|
6
|
-
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
8
|
+
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
7
9
|
var FORMALIZE = (function($, window, document, undefined) {
|
10
|
+
// Internet Explorer detection.
|
11
|
+
function IE(version) {
|
12
|
+
var b = document.createElement('b');
|
13
|
+
b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
|
14
|
+
return !!b.getElementsByTagName('br').length;
|
15
|
+
}
|
16
|
+
|
8
17
|
// Private constants.
|
9
18
|
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
19
|
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
-
var
|
12
|
-
var
|
13
|
-
var IE7 = !!($.browser.msie && parseInt($.browser.version, 10) === 7);
|
20
|
+
var IE6 = IE(6);
|
21
|
+
var IE7 = IE(7);
|
14
22
|
|
15
23
|
// Expose innards of FORMALIZE.
|
16
24
|
return {
|
17
25
|
// FORMALIZE.go
|
18
26
|
go: function() {
|
19
|
-
|
20
|
-
|
27
|
+
var i, j = this.init;
|
28
|
+
|
29
|
+
for (i in j) {
|
30
|
+
j.hasOwnProperty(i) && j[i]();
|
21
31
|
}
|
22
32
|
},
|
23
33
|
// FORMALIZE.init
|
24
34
|
init: {
|
25
|
-
// FORMALIZE.init.
|
26
|
-
|
27
|
-
|
28
|
-
return;
|
29
|
-
}
|
30
|
-
|
31
|
-
// Tweaks for Safari + Chrome.
|
32
|
-
// <html class="is_webkit">
|
33
|
-
$(document.documentElement).addClass('is_webkit');
|
35
|
+
// FORMALIZE.init.disable_link_button
|
36
|
+
disable_link_button: function() {
|
37
|
+
$(document.documentElement).on('click', 'a.button_disabled', function() {
|
38
|
+
return false;
|
39
|
+
});
|
34
40
|
},
|
35
41
|
// FORMALIZE.init.full_input_size
|
36
42
|
full_input_size: function() {
|
@@ -93,7 +99,11 @@ var FORMALIZE = (function($, window, document, undefined) {
|
|
93
99
|
return;
|
94
100
|
}
|
95
101
|
|
96
|
-
$('
|
102
|
+
var el = $('[autofocus]')[0];
|
103
|
+
|
104
|
+
if (!el.disabled) {
|
105
|
+
el.focus();
|
106
|
+
}
|
97
107
|
},
|
98
108
|
// FORMALIZE.init.placeholder
|
99
109
|
placeholder: function() {
|
@@ -106,6 +116,12 @@ var FORMALIZE = (function($, window, document, undefined) {
|
|
106
116
|
FORMALIZE.misc.add_placeholder();
|
107
117
|
|
108
118
|
$(':input[placeholder]').each(function() {
|
119
|
+
// Placeholder obscured in older browsers,
|
120
|
+
// so there's no point adding to password.
|
121
|
+
if (this.type === 'password') {
|
122
|
+
return;
|
123
|
+
}
|
124
|
+
|
109
125
|
var el = $(this);
|
110
126
|
var text = el.attr('placeholder');
|
111
127
|
|
@@ -123,7 +139,7 @@ var FORMALIZE = (function($, window, document, undefined) {
|
|
123
139
|
if (el.val() === text) {
|
124
140
|
el.val('').removeClass('placeholder_text');
|
125
141
|
}
|
126
|
-
}).
|
142
|
+
}).on('reset', function() {
|
127
143
|
setTimeout(FORMALIZE.misc.add_placeholder, 50);
|
128
144
|
});
|
129
145
|
});
|
@@ -140,6 +156,12 @@ var FORMALIZE = (function($, window, document, undefined) {
|
|
140
156
|
}
|
141
157
|
|
142
158
|
$(':input[placeholder]').each(function() {
|
159
|
+
// Placeholder obscured in older browsers,
|
160
|
+
// so there's no point adding to password.
|
161
|
+
if (this.type === 'password') {
|
162
|
+
return;
|
163
|
+
}
|
164
|
+
|
143
165
|
var el = $(this);
|
144
166
|
var text = el.attr('placeholder');
|
145
167
|
|
@@ -1 +1 @@
|
|
1
|
-
var FORMALIZE=function(
|
1
|
+
var FORMALIZE=function(e,t,n,r){function i(e){var t=n.createElement("b");return t.innerHTML="<!--[if IE "+e+"]><br><![endif]-->",!!t.getElementsByTagName("br").length}var s="placeholder"in n.createElement("input"),o="autofocus"in n.createElement("input"),u=i(6),a=i(7);return{go:function(){var e,t=this.init;for(e in t)t.hasOwnProperty(e)&&t[e]()},init:{disable_link_button:function(){e(n.documentElement).on("click","a.button_disabled",function(){return!1})},full_input_size:function(){if(!a||!e("textarea, input.input_full").length)return;e("textarea, input.input_full").wrap('<span class="input_full_wrap"></span>')},ie6_skin_inputs:function(){if(!u||!e("input, select, textarea").length)return;var t=/button|submit|reset/,n=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;e("input").each(function(){var r=e(this);this.getAttribute("type").match(t)?(r.addClass("ie6_button"),this.disabled&&r.addClass("ie6_button_disabled")):this.getAttribute("type").match(n)&&(r.addClass("ie6_input"),this.disabled&&r.addClass("ie6_input_disabled"))}),e("textarea, select").each(function(){this.disabled&&e(this).addClass("ie6_input_disabled")})},autofocus:function(){if(o||!e(":input[autofocus]").length)return;var t=e("[autofocus]")[0];t.disabled||t.focus()},placeholder:function(){if(s||!e(":input[placeholder]").length)return;FORMALIZE.misc.add_placeholder(),e(":input[placeholder]").each(function(){if(this.type==="password")return;var t=e(this),n=t.attr("placeholder");t.focus(function(){t.val()===n&&t.val("").removeClass("placeholder_text")}).blur(function(){FORMALIZE.misc.add_placeholder()}),t.closest("form").submit(function(){t.val()===n&&t.val("").removeClass("placeholder_text")}).on("reset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})})}},misc:{add_placeholder:function(){if(s||!e(":input[placeholder]").length)return;e(":input[placeholder]").each(function(){if(this.type==="password")return;var t=e(this),n=t.attr("placeholder");(!t.val()||t.val()===n)&&t.val(n).addClass("placeholder_text")})}}}}(jQuery,this,this.document);jQuery(document).ready(function(){FORMALIZE.go()})
|
@@ -1,5 +1,10 @@
|
|
1
1
|
# Make sure you list all the project template files here in the manifest.
|
2
|
-
|
2
|
+
|
3
|
+
# Image Import
|
4
|
+
file '../common/button.png', :like => :image, :to => 'button.png'
|
5
|
+
file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
|
6
|
+
|
7
|
+
discover :all
|
3
8
|
|
4
9
|
description "Teach your forms some manners."
|
5
10
|
|
@@ -1,4 +1,9 @@
|
|
1
1
|
# Make sure you list all the project template files here in the manifest.
|
2
|
+
|
3
|
+
# Image Import
|
4
|
+
file '../common/button.png', :like => :image, :to => 'button.png'
|
5
|
+
file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
|
6
|
+
|
2
7
|
discover :all
|
3
8
|
|
4
9
|
description "Teach your forms some manners."
|
@@ -1,36 +1,47 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/*
|
2
|
+
Formalize - version 1.2
|
3
|
+
|
4
|
+
Note: This file depends on the MooTools library.
|
5
|
+
*/
|
4
6
|
|
5
7
|
// Module pattern:
|
6
|
-
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
8
|
+
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
7
9
|
var FORMALIZE = (function(window, document, undefined) {
|
10
|
+
// Internet Explorer detection.
|
11
|
+
function IE(version) {
|
12
|
+
var b = document.createElement('b');
|
13
|
+
b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
|
14
|
+
return !!b.getElementsByTagName('br').length;
|
15
|
+
}
|
16
|
+
|
8
17
|
// Private constants.
|
9
18
|
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
19
|
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
-
var
|
12
|
-
var
|
13
|
-
var IE7 = Browser.ie7;
|
20
|
+
var IE6 = IE(6);
|
21
|
+
var IE7 = IE(7);
|
14
22
|
|
15
23
|
// Expose innards of FORMALIZE.
|
16
24
|
return {
|
17
25
|
// FORMALIZE.go
|
18
26
|
go: function() {
|
19
|
-
|
20
|
-
|
27
|
+
var i, j = this.init;
|
28
|
+
|
29
|
+
for (i in j) {
|
30
|
+
j.hasOwnProperty(i) && j[i]();
|
21
31
|
}
|
22
32
|
},
|
23
33
|
// FORMALIZE.init
|
24
34
|
init: {
|
25
|
-
// FORMALIZE.init.
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
35
|
+
// FORMALIZE.init.disable_link_button
|
36
|
+
disable_link_button: function() {
|
37
|
+
$(document.documentElement).addEvent('click', function(ev) {
|
38
|
+
var el = ev.target;
|
39
|
+
var is_disabled = el.tagName.toLowerCase() === 'a' && el.className.match('button_disabled');
|
40
|
+
|
41
|
+
if (is_disabled) {
|
42
|
+
ev.preventDefault();
|
43
|
+
}
|
44
|
+
});
|
34
45
|
},
|
35
46
|
// FORMALIZE.init.full_input_size
|
36
47
|
full_input_size: function() {
|
@@ -94,7 +105,11 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
94
105
|
return;
|
95
106
|
}
|
96
107
|
|
97
|
-
$$('[autofocus]')[0]
|
108
|
+
var el = $$('[autofocus]')[0];
|
109
|
+
|
110
|
+
if (!el.disabled) {
|
111
|
+
el.focus();
|
112
|
+
}
|
98
113
|
},
|
99
114
|
// FORMALIZE.init.placeholder
|
100
115
|
placeholder: function() {
|
@@ -107,6 +122,12 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
107
122
|
FORMALIZE.misc.add_placeholder();
|
108
123
|
|
109
124
|
$$('[placeholder]').each(function(el) {
|
125
|
+
// Placeholder obscured in older browsers,
|
126
|
+
// so there's no point adding to password.
|
127
|
+
if (el.type === 'password') {
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
|
110
131
|
var text = el.get('placeholder');
|
111
132
|
|
112
133
|
el.addEvents({
|
@@ -122,7 +143,9 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
122
143
|
|
123
144
|
// Prevent <form> from accidentally
|
124
145
|
// submitting the placeholder text.
|
125
|
-
el.getParent('form')
|
146
|
+
var form = el.getParent('form');
|
147
|
+
|
148
|
+
form && form.addEvents({
|
126
149
|
'submit': function() {
|
127
150
|
if (el.value === text) {
|
128
151
|
el.set('value', '').removeClass('placeholder_text');
|
@@ -146,6 +169,12 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
146
169
|
}
|
147
170
|
|
148
171
|
$$('[placeholder]').each(function(el) {
|
172
|
+
// Placeholder obscured in older browsers,
|
173
|
+
// so there's no point adding to password.
|
174
|
+
if (el.type === 'password') {
|
175
|
+
return;
|
176
|
+
}
|
177
|
+
|
149
178
|
var text = el.get('placeholder');
|
150
179
|
|
151
180
|
if (!el.value || el.value === text) {
|
@@ -1 +1 @@
|
|
1
|
-
var FORMALIZE=function(
|
1
|
+
var FORMALIZE=function(e,t,n){function r(e){var n=t.createElement("b");return n.innerHTML="<!--[if IE "+e+"]><br><![endif]-->",!!n.getElementsByTagName("br").length}var i="placeholder"in t.createElement("input"),s="autofocus"in t.createElement("input"),o=r(6),u=r(7);return{go:function(){var e,t=this.init;for(e in t)t.hasOwnProperty(e)&&t[e]()},init:{disable_link_button:function(){$(t.documentElement).addEvent("click",function(e){var t=e.target,n=t.tagName.toLowerCase()==="a"&&t.className.match("button_disabled");n&&e.preventDefault()})},full_input_size:function(){if(!u||!$$("textarea, input.input_full").length)return;$$("textarea, input.input_full").each(function(e){(new Element("span.input_full_wrap")).wraps(e)})},ie6_skin_inputs:function(){if(!o||!$$("input, select, textarea").length)return;var e=/button|submit|reset/,t=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;$$("input").each(function(n){n.getAttribute("type").match(e)?(n.addClass("ie6_button"),n.disabled&&n.addClass("ie6_button_disabled")):n.getAttribute("type").match(t)&&(n.addClass("ie6_input"),n.disabled&&n.addClass("ie6_input_disabled"))}),$$("textarea, select").each(function(e){e.disabled&&e.addClass("ie6_input_disabled")})},autofocus:function(){if(s||!$$("[autofocus]").length)return;var e=$$("[autofocus]")[0];e.disabled||e.focus()},placeholder:function(){if(i||!$$("[placeholder]").length)return;FORMALIZE.misc.add_placeholder(),$$("[placeholder]").each(function(e){if(e.type==="password")return;var t=e.get("placeholder");e.addEvents({focus:function(){e.value===t&&e.set("value","").removeClass("placeholder_text")},blur:function(){FORMALIZE.misc.add_placeholder()}});var n=e.getParent("form");n&&n.addEvents({submit:function(){e.value===t&&e.set("value","").removeClass("placeholder_text")},reset:function(){setTimeout(FORMALIZE.misc.add_placeholder,50)}})})}},misc:{add_placeholder:function(){if(i||!$$("[placeholder]").length)return;$$("[placeholder]").each(function(e){if(e.type==="password")return;var t=e.get("placeholder");(!e.value||e.value===t)&&e.set("value",t).addClass("placeholder_text")})}}}}(this,this.document);$(document).addEvent("domready",function(){FORMALIZE.go()})
|
@@ -1,4 +1,9 @@
|
|
1
1
|
# Make sure you list all the project template files here in the manifest.
|
2
|
+
|
3
|
+
# Image Import
|
4
|
+
file '../common/button.png', :like => :image, :to => 'button.png'
|
5
|
+
file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
|
6
|
+
|
2
7
|
discover :all
|
3
8
|
|
4
9
|
description "Teach your forms some manners."
|
@@ -1,17 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/*
|
2
|
+
Formalize - version 1.2
|
3
|
+
|
4
|
+
Note: This file depends on the Prototype library.
|
5
|
+
*/
|
4
6
|
|
5
7
|
// Module pattern:
|
6
|
-
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
8
|
+
// http://yuiblog.com/blog/2007/06/12/module-pattern
|
7
9
|
var FORMALIZE = (function(window, document, undefined) {
|
8
|
-
// Private constants.
|
9
|
-
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
|
-
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
-
var WEBKIT = 'webkitAppearance' in document.createElement('select').style;
|
12
|
-
var IE6 = IE(6);
|
13
|
-
var IE7 = IE(7);
|
14
|
-
|
15
10
|
// Internet Explorer detection.
|
16
11
|
function IE(version) {
|
17
12
|
var b = document.createElement('b');
|
@@ -19,25 +14,34 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
19
14
|
return !!b.getElementsByTagName('br').length;
|
20
15
|
}
|
21
16
|
|
17
|
+
// Private constants.
|
18
|
+
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
19
|
+
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
20
|
+
var IE6 = IE(6);
|
21
|
+
var IE7 = IE(7);
|
22
|
+
|
22
23
|
// Expose innards of FORMALIZE.
|
23
24
|
return {
|
24
25
|
// FORMALIZE.go
|
25
26
|
go: function() {
|
26
|
-
|
27
|
-
|
27
|
+
var i, j = this.init;
|
28
|
+
|
29
|
+
for (i in j) {
|
30
|
+
j.hasOwnProperty(i) && j[i]();
|
28
31
|
}
|
29
32
|
},
|
30
33
|
// FORMALIZE.init
|
31
34
|
init: {
|
32
|
-
// FORMALIZE.init.
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
35
|
+
// FORMALIZE.init.disable_link_button
|
36
|
+
disable_link_button: function() {
|
37
|
+
$(document.documentElement).observe('click', function(ev) {
|
38
|
+
var el = ev.target;
|
39
|
+
var is_disabled = el.tagName.toLowerCase() === 'a' && el.className.match('button_disabled');
|
40
|
+
|
41
|
+
if (is_disabled) {
|
42
|
+
ev.preventDefault();
|
43
|
+
}
|
44
|
+
});
|
41
45
|
},
|
42
46
|
// FORMALIZE.init.full_input_size
|
43
47
|
full_input_size: function() {
|
@@ -100,7 +104,11 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
100
104
|
return;
|
101
105
|
}
|
102
106
|
|
103
|
-
$$('[autofocus]')[0]
|
107
|
+
var el = $$('[autofocus]')[0];
|
108
|
+
|
109
|
+
if (!el.disabled) {
|
110
|
+
el.focus();
|
111
|
+
}
|
104
112
|
},
|
105
113
|
// FORMALIZE.init.placeholder
|
106
114
|
placeholder: function() {
|
@@ -113,6 +121,12 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
113
121
|
FORMALIZE.misc.add_placeholder();
|
114
122
|
|
115
123
|
$$('[placeholder]').each(function(el) {
|
124
|
+
// Placeholder obscured in older browsers,
|
125
|
+
// so there's no point adding to password.
|
126
|
+
if (el.type === 'password') {
|
127
|
+
return;
|
128
|
+
}
|
129
|
+
|
116
130
|
var text = el.getAttribute('placeholder');
|
117
131
|
var form = el.up('form');
|
118
132
|
|
@@ -153,6 +167,12 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
153
167
|
}
|
154
168
|
|
155
169
|
$$('[placeholder]').each(function(el) {
|
170
|
+
// Placeholder obscured in older browsers,
|
171
|
+
// so there's no point adding to password.
|
172
|
+
if (el.type === 'password') {
|
173
|
+
return;
|
174
|
+
}
|
175
|
+
|
156
176
|
var text = el.getAttribute('placeholder');
|
157
177
|
|
158
178
|
if (!el.value || el.value === text) {
|
@@ -1 +1 @@
|
|
1
|
-
var FORMALIZE=function(
|
1
|
+
var FORMALIZE=function(e,t,n){function r(e){var n=t.createElement("b");return n.innerHTML="<!--[if IE "+e+"]><br><![endif]-->",!!n.getElementsByTagName("br").length}var i="placeholder"in t.createElement("input"),s="autofocus"in t.createElement("input"),o=r(6),u=r(7);return{go:function(){var e,t=this.init;for(e in t)t.hasOwnProperty(e)&&t[e]()},init:{disable_link_button:function(){$(t.documentElement).observe("click",function(e){var t=e.target,n=t.tagName.toLowerCase()==="a"&&t.className.match("button_disabled");n&&e.preventDefault()})},full_input_size:function(){if(!u||!$$("textarea, input.input_full").length)return;$$("textarea, input.input_full").each(function(e){Element.wrap(e,"span",{"class":"input_full_wrap"})})},ie6_skin_inputs:function(){if(!o||!$$("input, select, textarea").length)return;var e=/button|submit|reset/,t=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;$$("input").each(function(n){n.getAttribute("type").match(e)?(n.addClassName("ie6_button"),n.disabled&&n.addClassName("ie6_button_disabled")):n.getAttribute("type").match(t)&&(n.addClassName("ie6_input"),n.disabled&&n.addClassName("ie6_input_disabled"))}),$$("textarea, select").each(function(e){e.disabled&&e.addClassName("ie6_input_disabled")})},autofocus:function(){if(s||!$$("[autofocus]").length)return;var e=$$("[autofocus]")[0];e.disabled||e.focus()},placeholder:function(){if(i||!$$("[placeholder]").length)return;FORMALIZE.misc.add_placeholder(),$$("[placeholder]").each(function(e){if(e.type==="password")return;var t=e.getAttribute("placeholder"),n=e.up("form");e.observe("focus",function(){e.value===t&&(e.value="",e.removeClassName("placeholder_text"))}),e.observe("blur",function(){FORMALIZE.misc.add_placeholder()}),n.observe("submit",function(){e.value===t&&(e.value="",e.removeClassName("placeholder_text"))}),n.observe("reset",function(){setTimeout(FORMALIZE.misc.add_placeholder,50)})})}},misc:{add_placeholder:function(){if(i||!$$("[placeholder]").length)return;$$("[placeholder]").each(function(e){if(e.type==="password")return;var t=e.getAttribute("placeholder");if(!e.value||e.value===t)e.value=t,e.addClassName("placeholder_text")})}}}}(this,this.document);$(document).observe("dom:loaded",function(){FORMALIZE.go()})
|
data/templates/yui/manifest.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
# Make sure you list all the project template files here in the manifest.
|
2
|
+
|
3
|
+
# Image Import
|
4
|
+
file '../common/button.png', :like => :image, :to => 'button.png'
|
5
|
+
file '../common/select_arrow.gif', :like => :image, :to => 'select_arrow.gif'
|
6
|
+
|
2
7
|
discover :all
|
3
8
|
|
4
9
|
description "Teach your forms some manners."
|
@@ -1,38 +1,42 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/*
|
2
|
+
Formalize - version 1.2
|
3
|
+
|
4
|
+
Note: This file depends on the YUI library.
|
5
|
+
*/
|
6
|
+
|
7
|
+
YUI.add('formalize', function(Y) {
|
8
|
+
// Internet Explorer detection.
|
9
|
+
function IE(version) {
|
10
|
+
var b = document.createElement('b');
|
11
|
+
b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
|
12
|
+
return !!b.getElementsByTagName('br').length;
|
13
|
+
}
|
4
14
|
|
5
|
-
// Module pattern:
|
6
|
-
// http://yuiblog.com/blog/2007/06/12/module-pattern/
|
7
|
-
var FORMALIZE = (function(window, document, undefined) {
|
8
15
|
// Private constants.
|
9
16
|
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
17
|
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
-
var
|
12
|
-
var
|
13
|
-
var IE7 = parseInt(Y.UA.ie, 10) === 7;
|
18
|
+
var IE6 = IE(6);
|
19
|
+
var IE7 = IE(7);
|
14
20
|
|
15
|
-
// Expose innards of
|
16
|
-
|
17
|
-
//
|
21
|
+
// Expose innards of Formalize.
|
22
|
+
Y.formalize = {
|
23
|
+
// Y.formalize.go
|
18
24
|
go: function() {
|
19
|
-
|
20
|
-
|
25
|
+
var i, j = this.init;
|
26
|
+
|
27
|
+
for (i in j) {
|
28
|
+
j.hasOwnProperty(i) && j[i]();
|
21
29
|
}
|
22
30
|
},
|
23
|
-
//
|
31
|
+
// Y.formalize.init
|
24
32
|
init: {
|
25
|
-
//
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
// Tweaks for Safari + Chrome.
|
32
|
-
// <html class="is_webkit">
|
33
|
-
Y.one(document.documentElement).addClass('is_webkit');
|
33
|
+
// Y.formalize.init.disable_link_button
|
34
|
+
disable_link_button: function() {
|
35
|
+
Y.one(document.documentElement).delegate('click', function(ev) {
|
36
|
+
ev.preventDefault();
|
37
|
+
}, 'a.button_disabled');
|
34
38
|
},
|
35
|
-
//
|
39
|
+
// Y.formalize.init.full_input_size
|
36
40
|
full_input_size: function() {
|
37
41
|
if (!IE7 || !Y.all('textarea, input.input_full')) {
|
38
42
|
return;
|
@@ -45,7 +49,7 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
45
49
|
wrapper.append(el.replace(wrapper));
|
46
50
|
});
|
47
51
|
},
|
48
|
-
//
|
52
|
+
// Y.formalize.init.ie6_skin_inputs
|
49
53
|
ie6_skin_inputs: function() {
|
50
54
|
// Test for Internet Explorer 6.
|
51
55
|
if (!IE6 || !Y.all('input, select, textarea')) {
|
@@ -88,15 +92,19 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
88
92
|
}
|
89
93
|
});
|
90
94
|
},
|
91
|
-
//
|
95
|
+
// Y.formalize.init.autofocus
|
92
96
|
autofocus: function() {
|
93
97
|
if (AUTOFOCUS_SUPPORTED || !Y.one('[autofocus]')) {
|
94
98
|
return;
|
95
99
|
}
|
96
100
|
|
97
|
-
Y.one('[autofocus]')
|
101
|
+
var el = Y.Node.getDOMNode(Y.one('[autofocus]'));
|
102
|
+
|
103
|
+
if (!el.disabled) {
|
104
|
+
el.focus();
|
105
|
+
}
|
98
106
|
},
|
99
|
-
//
|
107
|
+
// Y.formalize.init.placeholder
|
100
108
|
placeholder: function() {
|
101
109
|
if (PLACEHOLDER_SUPPORTED || !Y.one('[placeholder]')) {
|
102
110
|
// Exit if placeholder is supported natively,
|
@@ -104,9 +112,15 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
104
112
|
return;
|
105
113
|
}
|
106
114
|
|
107
|
-
|
115
|
+
Y.formalize.misc.add_placeholder();
|
108
116
|
|
109
117
|
Y.all('[placeholder]').each(function(el) {
|
118
|
+
// Placeholder obscured in older browsers,
|
119
|
+
// so there's no point adding to password.
|
120
|
+
if (el.getAttribute('type') === 'password') {
|
121
|
+
return;
|
122
|
+
}
|
123
|
+
|
110
124
|
var text = el.getAttribute('placeholder');
|
111
125
|
var form = el.ancestor('form');
|
112
126
|
|
@@ -123,26 +137,26 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
123
137
|
});
|
124
138
|
|
125
139
|
el.on('blur', function() {
|
126
|
-
|
140
|
+
Y.formalize.misc.add_placeholder();
|
127
141
|
});
|
128
142
|
|
129
143
|
// Prevent <form> from accidentally
|
130
144
|
// submitting the placeholder text.
|
131
|
-
form.on('submit', function() {
|
145
|
+
form && form.on('submit', function() {
|
132
146
|
if (el.get('value') === text) {
|
133
147
|
el.set('value', '').removeClass('placeholder_text');
|
134
148
|
}
|
135
149
|
});
|
136
150
|
|
137
|
-
form.on('reset', function() {
|
138
|
-
setTimeout(
|
151
|
+
form && form.on('reset', function() {
|
152
|
+
setTimeout(Y.formalize.misc.add_placeholder, 50);
|
139
153
|
});
|
140
154
|
});
|
141
155
|
}
|
142
156
|
},
|
143
|
-
//
|
157
|
+
// Y.formalize.misc
|
144
158
|
misc: {
|
145
|
-
//
|
159
|
+
// Y.formalize.misc.add_placeholder
|
146
160
|
add_placeholder: function() {
|
147
161
|
if (PLACEHOLDER_SUPPORTED || !Y.one('[placeholder]')) {
|
148
162
|
// Exit if placeholder is supported natively,
|
@@ -151,6 +165,12 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
151
165
|
}
|
152
166
|
|
153
167
|
Y.all('[placeholder]').each(function(el) {
|
168
|
+
// Placeholder obscured in older browsers,
|
169
|
+
// so there's no point adding to password.
|
170
|
+
if (el.getAttribute('type') === 'password') {
|
171
|
+
return;
|
172
|
+
}
|
173
|
+
|
154
174
|
var text = el.getAttribute('placeholder');
|
155
175
|
|
156
176
|
if (!el.get('value') || el.get('value') === text) {
|
@@ -160,10 +180,4 @@ var FORMALIZE = (function(window, document, undefined) {
|
|
160
180
|
}
|
161
181
|
}
|
162
182
|
};
|
163
|
-
|
164
|
-
})(this, this.document);
|
165
|
-
|
166
|
-
// Automatically calls all functions in FORMALIZE.init
|
167
|
-
Y.on('domready', function() {
|
168
|
-
FORMALIZE.go();
|
169
|
-
});
|
183
|
+
}, '1.1', {requires: ['node', 'event']});
|