compass_formalize 0.0.4 → 0.0.5
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.
- 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']});
|