Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(875)

Side by Side Diff: chrome/browser/resources/print_preview/previewarea/margin_utils.js

Issue 10108001: Refactor print preview web ui (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review feedback Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('print_preview', function() { 5 cr.define('print_preview', function() {
6 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * Checks if |text| has a valid margin value format. A valid format is 9 * Checks if |text| has a valid margin value format. A valid format is
10 * parsable as a number and is greater than zero. 10 * parsable as a number and is greater than zero.
11 * Example: "1.00", "1", ".5", "1.1" are valid values. 11 * Example: "1.00", "1", ".5", "1.1" are valid values.
12 * Example: "1.4dsf", "-1" are invalid. 12 * Example: "1.4dsf", "-1" are invalid.
13 * Note: The inch symbol (") at the end of |text| is allowed. 13 * Note: The inch symbol (") at the end of |text| is allowed.
14 * 14 *
15 * @param {string} text The text to check. 15 * @param {string} text The text to check.
16 * @param {print_preview.MeasurementSystem} measurementSystem Used to handle
17 * parsing local units.
16 * @return {number} The margin value represented by |text| or null if |text| 18 * @return {number} The margin value represented by |text| or null if |text|
17 * does not represent a valid number. 19 * does not represent a valid number.
18 */ 20 */
19 function extractMarginValue(text) { 21 function extractMarginValue(text, measurementSystem) {
20 // Removing whitespace anywhere in the string. 22 // Removing whitespace anywhere in the string.
21 text = text.replace(/\s*/g, ''); 23 text = text.replace(/\s*/g, '');
22 if (text.length == 0) 24 if (text.length == 0)
23 return -1; 25 return -1;
24 var validationRegex = getValidationRegExp(); 26 var validationRegex = getValidationRegExp(measurementSystem);
25 if (validationRegex.test(text)) { 27 if (validationRegex.test(text)) {
26 // Replacing decimal point with the dot symbol in order to use 28 // Replacing decimal point with the dot symbol in order to use
27 // parseFloat() properly. 29 // parseFloat() properly.
28 var replacementRegex = new RegExp('\\' + 30 var replacementRegex =
29 print_preview.MarginSettings.decimalPoint + '{1}'); 31 new RegExp('\\' + measurementSystem.decimalDelimeter + '{1}');
30 text = text.replace(replacementRegex, '.'); 32 text = text.replace(replacementRegex, '.');
31 return parseFloat(text); 33 return parseFloat(text);
32 } 34 }
33 return -1; 35 return -1;
34 } 36 }
35 37
36 /** 38 /**
39 * @param {print_preview.MeasurementSystem} measurementSystem Contains the
40 * delimeters used in this system.
37 * @return {RegExp} A regular expression for validating the input of the user. 41 * @return {RegExp} A regular expression for validating the input of the user.
38 * It takes into account the user's locale. 42 * It takes into account the user's locale.
39 */ 43 */
40 function getValidationRegExp() { 44 function getValidationRegExp(measurementSystem) {
41 var regex = new RegExp('(^\\d+)(\\' + 45 var regex = new RegExp('(^\\d+)(\\' +
42 print_preview.MarginSettings.thousandsPoint + '\\d{3})*(\\' + 46 measurementSystem.thousandsDelimeter + '\\d{3})*(\\' +
43 print_preview.MarginSettings.decimalPoint + '\\d+)*' + 47 measurementSystem.decimalDelimeter + '\\d+)*' +
44 (!print_preview.MarginSettings.useMetricSystem ? '"?' : '(mm)?') + '$'); 48 '(' + measurementSystem.unitSymbol + ')?' + '$');
45 return regex; 49 return regex;
46 } 50 }
47 51
48 var marginValidationStates = { 52 var marginValidationStates = {
49 TOO_SMALL: 0, 53 TOO_SMALL: 0,
50 WITHIN_RANGE: 1, 54 WITHIN_RANGE: 1,
51 TOO_BIG: 2, 55 TOO_BIG: 2,
52 NOT_A_NUMBER: 3 56 NOT_A_NUMBER: 3
53 }; 57 };
54 58
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 convertPointsToLocaleUnitsAndBack, 182 convertPointsToLocaleUnitsAndBack,
179 convertPointsToLocaleUnitsText: convertPointsToLocaleUnitsText, 183 convertPointsToLocaleUnitsText: convertPointsToLocaleUnitsText,
180 convertLocaleUnitsToPoints: convertLocaleUnitsToPoints, 184 convertLocaleUnitsToPoints: convertLocaleUnitsToPoints,
181 extractMarginValue: extractMarginValue, 185 extractMarginValue: extractMarginValue,
182 marginValidationStates: marginValidationStates, 186 marginValidationStates: marginValidationStates,
183 Rect: Rect, 187 Rect: Rect,
184 validateMarginText: validateMarginText, 188 validateMarginText: validateMarginText,
185 validateMarginValue: validateMarginValue 189 validateMarginValue: validateMarginValue
186 }; 190 };
187 }); 191 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698