1
1
/*
2
2
# check.js - simple application to check numbers
3
3
#
4
- # Copyright (C) 2017-2018 Arthur de Jong.
4
+ # Copyright (C) 2017-2020 Arthur de Jong.
5
5
#
6
6
# This library is free software; you can redistribute it and/or
7
7
# modify it under the terms of the GNU Lesser General Public
19
19
# 02110-1301 USA
20
20
*/
21
21
22
- $ ( document ) . ready ( function ( ) {
23
-
22
+ $ ( document ) . ready ( function ( ) {
24
23
function format ( value ) {
25
- return $ ( " <div/>" ) . text ( value ) . html ( ) . replace (
26
- / \n \n / g, " <br/>\n"
24
+ return $ ( ' <div/>' ) . text ( value ) . html ( ) . replace (
25
+ / \n \n / g, ' <br/>\n'
27
26
) . replace (
28
- / ^ [ * ] ( .* ) $ / gm, " <ul><li>$1</li></ul>"
27
+ / ^ [ * ] ( .* ) $ / gm, ' <ul><li>$1</li></ul>'
29
28
) . replace (
30
29
/ ( \b ( h t t p s ? | f t p ) : \/ \/ [ ^ \s < ] * [ - \w + & @ # / % = ~ _ | ] ) / ig,
31
30
"<a href='$1'>$1</a>"
@@ -34,98 +33,96 @@ $( document ).ready(function() {
34
33
35
34
function updateresults ( field , results ) {
36
35
// build HTML to present
37
- var h = [ " <ul>" ] ;
38
- $ . each ( results , function ( index , result ) {
36
+ var h = [ ' <ul>' ]
37
+ $ . each ( results , function ( index , result ) {
39
38
h . push (
40
- " <li>" ,
41
- $ ( " <div/>" ) . text ( result [ " number" ] ) . html ( ) ,
42
- " : <b>" ,
43
- $ ( " <div/>" ) . text ( result [ " name" ] ) . html ( ) ,
44
- " </b>" ,
45
- " <p>" ,
46
- format ( result [ " description" ] ) ,
47
- $ . map ( result [ " conversions" ] , function ( value , key ) {
39
+ ' <li>' ,
40
+ $ ( ' <div/>' ) . text ( result . number ) . html ( ) ,
41
+ ' : <b>' ,
42
+ $ ( ' <div/>' ) . text ( result . name ) . html ( ) ,
43
+ ' </b>' ,
44
+ ' <p>' ,
45
+ format ( result . description ) ,
46
+ $ . map ( result . conversions , function ( value , key ) {
48
47
return [
49
- " <br/><b><i>" ,
50
- $ ( " <div/>" ) . text ( key ) . html ( ) ,
51
- " </i></b>: " ,
52
- $ ( " <div/>" ) . text ( value ) . html ( ) ] . join ( '' )
48
+ ' <br/><b><i>' ,
49
+ $ ( ' <div/>' ) . text ( key ) . html ( ) ,
50
+ ' </i></b>: ' ,
51
+ $ ( ' <div/>' ) . text ( value ) . html ( ) ] . join ( '' )
53
52
} ) . join ( '' ) ,
54
- " </p></li>" )
55
- } ) ;
56
- h . push ( " </ul>" ) ;
53
+ ' </p></li>' )
54
+ } )
55
+ h . push ( ' </ul>' )
57
56
// replace the results div
58
- $ ( "#" + $ ( field ) . attr ( "id" ) + " _results" ) . html ( h . join ( "" ) ) ;
57
+ $ ( '#' + $ ( field ) . attr ( 'id' ) + ' _results' ) . html ( h . join ( '' ) )
59
58
}
60
59
61
60
function checkfield ( field ) {
62
- var value = field . val ( ) ;
61
+ var value = field . val ( )
63
62
// only trigger update if value changed from previous validation
64
- if ( value != field . data ( " oldvalue" ) ) {
65
- field . data ( " oldvalue" , value ) ;
66
- $ ( "#" + $ ( field ) . attr ( "id" ) + " _results" ) . slideUp ( 200 , function ( ) {
67
- $ . get ( '' , { " number" : value } , function ( data ) {
68
- window . history . pushState ( { " value" : value , " data" : data } , $ ( document ) . find ( " title" ) . text ( ) , " ?number=" + encodeURIComponent ( value ) ) ;
69
- updateresults ( field , data ) ;
70
- } ) ;
71
- $ ( this ) . slideDown ( 300 ) ;
72
- } ) ;
63
+ if ( value !== field . data ( ' oldvalue' ) ) {
64
+ field . data ( ' oldvalue' , value )
65
+ $ ( '#' + $ ( field ) . attr ( 'id' ) + ' _results' ) . slideUp ( 200 , function ( ) {
66
+ $ . get ( '. ' , { number : value } , function ( data ) {
67
+ window . history . pushState ( { value : value , data : data } , $ ( document ) . find ( ' title' ) . text ( ) , ' ?number=' + encodeURIComponent ( value ) )
68
+ updateresults ( field , data )
69
+ } )
70
+ $ ( this ) . slideDown ( 300 )
71
+ } )
73
72
}
74
73
}
75
74
76
75
// update results based on history navigation
77
- window . onpopstate = function ( e ) {
78
- var field = $ ( " .stdnum_check" ) ;
76
+ window . onpopstate = function ( e ) {
77
+ var field = $ ( ' .stdnum_check' )
79
78
if ( e . state ) {
80
- var value = e . state . value ;
81
- var data = e . state . data ;
79
+ var value = e . state . value
80
+ var data = e . state . data
82
81
field . val ( value )
83
- field . data ( " oldvalue" , value ) ;
84
- updateresults ( field , data ) ;
82
+ field . data ( ' oldvalue' , value )
83
+ updateresults ( field , data )
85
84
} else {
86
- field . val ( "" )
87
- field . data ( " oldvalue" , "" ) ;
88
- updateresults ( field , [ ] ) ;
85
+ field . val ( '' )
86
+ field . data ( ' oldvalue' , '' )
87
+ updateresults ( field , [ ] )
89
88
}
90
- } ;
89
+ }
91
90
92
91
// trigger a check when user stopped typing
93
- $ ( ".stdnum_check" ) . on ( "input propertychange" , function ( event ) {
94
- if ( window . event && event . type == "propertychange" && event . propertyName != "value" )
95
- return ;
96
- var field = $ ( this ) ;
97
- window . clearTimeout ( $ ( this ) . data ( "timeout" ) ) ;
98
- $ ( this ) . data ( "timeout" , setTimeout ( function ( ) {
99
- checkfield ( field ) ;
100
- } , 2000 ) ) ;
101
- } ) ;
92
+ $ ( '.stdnum_check' ) . on ( 'input propertychange' , function ( event ) {
93
+ if ( window . event && event . type === 'propertychange' && event . propertyName !== 'value' ) { return }
94
+ var field = $ ( this )
95
+ window . clearTimeout ( $ ( this ) . data ( 'timeout' ) )
96
+ $ ( this ) . data ( 'timeout' , setTimeout ( function ( ) {
97
+ checkfield ( field )
98
+ } , 2000 ) )
99
+ } )
102
100
103
101
// trigger a check when losing focus
104
- $ ( " .stdnum_check" ) . on ( " blur" , function ( ) {
105
- window . clearTimeout ( $ ( this ) . data ( " timeout" ) ) ;
106
- checkfield ( $ ( this ) ) ;
107
- } ) ;
102
+ $ ( ' .stdnum_check' ) . on ( ' blur' , function ( ) {
103
+ window . clearTimeout ( $ ( this ) . data ( ' timeout' ) )
104
+ checkfield ( $ ( this ) )
105
+ } )
108
106
109
107
// prevent enter from submitting the form
110
- $ ( " .stdnum_check" ) . keydown ( function ( event ) {
111
- if ( event . keyCode == 13 ) {
112
- event . preventDefault ( ) ;
113
- checkfield ( $ ( this ) ) ;
114
- return false ;
108
+ $ ( ' .stdnum_check' ) . keydown ( function ( event ) {
109
+ if ( event . keyCode = == 13 ) {
110
+ event . preventDefault ( )
111
+ checkfield ( $ ( this ) )
112
+ return false
115
113
}
116
- } ) ;
114
+ } )
117
115
118
116
// hide the submit button
119
- $ ( " .stdnum_hide" ) . hide ( ) ;
117
+ $ ( ' .stdnum_hide' ) . hide ( )
120
118
121
119
// focus the text field
122
- $ ( " .stdnum_check" ) . focus ( ) ;
120
+ $ ( ' .stdnum_check' ) . focus ( )
123
121
124
122
// save current state
125
- var value = $ ( " .stdnum_check" ) . val ( ) ;
126
- $ ( " .stdnum_check" ) . data ( " oldvalue" , value ) ;
127
- $ . get ( '' , { number : value } , function ( data ) {
128
- window . history . replaceState ( { " value" : value , " data" : data } , $ ( document ) . find ( " title" ) . text ( ) , " ?number=" + encodeURIComponent ( value ) ) ;
123
+ var value = $ ( ' .stdnum_check' ) . val ( )
124
+ $ ( ' .stdnum_check' ) . data ( ' oldvalue' , value )
125
+ $ . get ( '' , { number : value } , function ( data ) {
126
+ window . history . replaceState ( { value : value , data : data } , $ ( document ) . find ( ' title' ) . text ( ) , ' ?number=' + encodeURIComponent ( value ) )
129
127
} )
130
-
131
- } ) ;
128
+ } )
0 commit comments