Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 242bafa

Browse files
committedFeb 12, 2012
temp fix for issue egorkhmelev#3
1 parent 8da1069 commit 242bafa

6 files changed

+93
-19
lines changed
 

‎Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ css_compiler: js_compiler
88
js_compiler:
99
mkdir -p bin
1010
rm -f bin/jquery.slider.all.js bin/jquery.slider.min.js
11-
cat js/jshashtable-2.1_src.js js/jquery.numberformatter-1.2.2.js js/tmpl.js js/jquery.dependClass-0.1.js js/draggable-0.1.js js/jquery.slider.js > bin/jquery.slider.all.js
11+
cat js/jshashtable-2.1_src.js js/jquery.numberformatter-1.2.3.js js/tmpl.js js/jquery.dependClass-0.1.js js/draggable-0.1.js js/jquery.slider.js > bin/jquery.slider.all.js
1212
uglifyjs -nc bin/jquery.slider.all.js > bin/jquery.slider.min.js
1313
rm -f bin/jquery.slider.all.js
1414

‎bin/jquery.slider.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
<!-- bin/jquery.slider.min.js -->
1818
<script type="text/javascript" src="js/jshashtable-2.1_src.js"></script>
19-
<script type="text/javascript" src="js/jquery.numberformatter-1.2.2.js"></script>
19+
<script type="text/javascript" src="js/jquery.numberformatter-1.2.3.js"></script>
2020
<script type="text/javascript" src="js/tmpl.js"></script>
2121
<script type="text/javascript" src="js/jquery.dependClass-0.1.js"></script>
2222
<script type="text/javascript" src="js/draggable-0.1.js"></script>
23-
<script type="text/javascript" src="js/jquery.slider.min.js"></script>
23+
<script type="text/javascript" src="js/jquery.slider.js"></script>
2424
<!-- end -->
2525

2626
<style type="text/css" media="screen">

‎js/jquery.numberformatter-1.2.2.js ‎js/jquery.numberformatter-1.2.3.js

+38-14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* and GPL (GPL-LICENSE.txt) licenses.
1010
*
1111
* @author Michael Abernethy, Andrew Parry
12-
* @version 1.2.2-RELEASE ($Id$)
12+
* @version 1.2.3-SNAPSHOT ($Id$)
1313
*
1414
* Dependencies
1515
*
@@ -127,15 +127,24 @@
127127
}
128128
};
129129

130-
function formatCodes(locale) {
130+
function formatCodes(locale, isFullLocale) {
131131
if (nfLocales.size() == 0)
132132
init();
133133

134134
// default values
135135
var dec = ".";
136136
var group = ",";
137137
var neg = "-";
138-
138+
139+
if (isFullLocale == false) {
140+
// Extract and convert to lower-case any language code from a real 'locale' formatted string, if not use as-is
141+
// (To prevent locale format like : "fr_FR", "en_US", "de_DE", "fr_FR", "en-US", "de-DE")
142+
if (locale.indexOf('_') != -1)
143+
locale = locale.split('_')[1].toLowerCase();
144+
else if (locale.indexOf('-') != -1)
145+
locale = locale.split('-')[1].toLowerCase();
146+
}
147+
139148
// hashtable lookup to match locale with codes
140149
var codesIndex = nfLocales.get(locale);
141150
if (codesIndex) {
@@ -201,7 +210,7 @@
201210
*/
202211
jQuery.formatNumber = function(numberString, options){
203212
var options = jQuery.extend({}, jQuery.fn.formatNumber.defaults, options);
204-
var formatData = formatCodes(options.locale.toLowerCase());
213+
var formatData = formatCodes(options.locale.toLowerCase(), options.isFullLocale);
205214

206215
var dec = formatData.dec;
207216
var group = formatData.group;
@@ -254,7 +263,7 @@
254263
*/
255264
jQuery._formatNumber = function(number, options, suffix, prefix, negativeInFront) {
256265
var options = jQuery.extend({}, jQuery.fn.formatNumber.defaults, options);
257-
var formatData = formatCodes(options.locale.toLowerCase());
266+
var formatData = formatCodes(options.locale.toLowerCase(), options.isFullLocale);
258267

259268
var dec = formatData.dec;
260269
var group = formatData.group;
@@ -336,15 +345,21 @@
336345
}
337346
}
338347

339-
// account for any pre-data 0's
348+
// account for any pre-data padding
340349
if (onesFormat.length > onePortion.length) {
341350
var padStart = onesFormat.indexOf('0');
342351
if (padStart != -1) {
343352
var padLen = onesFormat.length - padStart;
344353

345-
// pad to left with 0's
354+
// pad to left with 0's or group char
355+
var pos = onesFormat.length - onePortion.length - 1;
346356
while (onePortion.length < padLen) {
347-
onePortion = '0' + onePortion;
357+
var padChar = onesFormat.charAt(pos);
358+
// replace with real group char if needed
359+
if (padChar == ',')
360+
padChar = group;
361+
onePortion = padChar + onePortion;
362+
pos--;
348363
}
349364
}
350365
}
@@ -415,7 +430,7 @@
415430
*/
416431
jQuery.parseNumber = function(numberString, options) {
417432
var options = jQuery.extend({}, jQuery.fn.parseNumber.defaults, options);
418-
var formatData = formatCodes(options.locale.toLowerCase());
433+
var formatData = formatCodes(options.locale.toLowerCase(), options.isFullLocale);
419434

420435
var dec = formatData.dec;
421436
var group = formatData.group;
@@ -429,7 +444,7 @@
429444
numberString = numberString.replace(dec,".").replace(neg,"-");
430445
var validText = "";
431446
var hasPercent = false;
432-
if (numberString.charAt(numberString.length-1)=="%")
447+
if (numberString.charAt(numberString.length - 1) == "%" || options.isPercentage == true)
433448
hasPercent = true;
434449
for (var i=0; i<numberString.length; i++) {
435450
if (valid.indexOf(numberString.charAt(i))>-1)
@@ -438,27 +453,36 @@
438453
var number = new Number(validText);
439454
if (hasPercent) {
440455
number = number / 100;
441-
number = number.toFixed(validText.length-1);
456+
var decimalPos = validText.indexOf('.');
457+
if (decimalPos != -1) {
458+
var decimalPoints = validText.length - decimalPos - 1;
459+
number = number.toFixed(decimalPoints + 2);
460+
} else {
461+
number = number.toFixed(validText.length - 1);
462+
}
442463
}
443464

444465
return number;
445466
};
446467

447468
jQuery.fn.parseNumber.defaults = {
448469
locale: "us",
449-
decimalSeparatorAlwaysShown: false
470+
decimalSeparatorAlwaysShown: false,
471+
isPercentage: false,
472+
isFullLocale: false
450473
};
451474

452475
jQuery.fn.formatNumber.defaults = {
453476
format: "#,###.00",
454477
locale: "us",
455478
decimalSeparatorAlwaysShown: false,
456479
nanForceZero: true,
457-
round: true
480+
round: true,
481+
isFullLocale: false
458482
};
459483

460484
Number.prototype.toFixed = function(precision) {
461-
return $._roundNumber(this, precision);
485+
return jQuery._roundNumber(this, precision);
462486
};
463487

464488
jQuery._roundNumber = function(number, decimalPlaces) {

‎js/jquery.slider.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
smooth: true,
159159
limits: true,
160160
round: 0,
161-
format: { format: "#,###.##" },
161+
format: { format: "#,##0.##" },
162162
value: "5;7",
163163
dimension: ""
164164
},

‎tests/zero_value.html

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5+
<title>jSlider Zero value test</title>
6+
7+
<!-- bin/jquery.slider.min.css -->
8+
<link rel="stylesheet" href="../css/jslider.css" type="text/css">
9+
<link rel="stylesheet" href="../css/jslider.plastic.css" type="text/css">
10+
<!-- end -->
11+
12+
<script type="text/javascript" src="../js/jquery-1.7.1.js"></script>
13+
14+
<!-- bin/jquery.slider.min.js -->
15+
<script type="text/javascript" src="../js/jshashtable-2.1_src.js"></script>
16+
<script type="text/javascript" src="../js/jquery.numberformatter-1.2.3.js"></script>
17+
<script type="text/javascript" src="../js/tmpl.js"></script>
18+
<script type="text/javascript" src="../js/jquery.dependClass-0.1.js"></script>
19+
<script type="text/javascript" src="../js/draggable-0.1.js"></script>
20+
<script type="text/javascript" src="../js/jquery.slider.js"></script>
21+
<!-- end -->
22+
23+
<style type="text/css" media="screen">
24+
body { background: #EEF0F7; }
25+
.layout { padding: 50px; font-family: Georgia, serif; }
26+
.layout-slider { margin-bottom: 60px; width: 50%; }
27+
</style>
28+
29+
</head>
30+
<body>
31+
32+
<div class="layout">
33+
34+
<div class="layout-slider" style="width: 100%">
35+
Slider <span style="display: inline-block; width: 400px; padding: 0 5px;"><input id="Slider1" type="slider" name="price" value="50" /></span> in string
36+
</div>
37+
<script type="text/javascript" charset="utf-8">
38+
jQuery("#Slider1").slider({
39+
from: -50,
40+
to: 200,
41+
step: 5,
42+
dimension: '%',
43+
skin: 'plastic',
44+
scale: ['-50', '|', '0', '|', '50', '|', '100', '|', '150', '|', '200']
45+
});
46+
</script>
47+
48+
</div>
49+
</body>
50+
</html>

0 commit comments

Comments
 (0)
Please sign in to comment.