@@ -9,8 +9,8 @@ $.fn.extend({
9
9
10
10
_bgBusyAria : function ( busy )
11
11
{
12
- return ( busy == null || busy ) ?
13
- this . _bgAria ( "busy" , "true" ) :
12
+ return ( busy == null || busy ) ?
13
+ this . _bgAria ( "busy" , "true" ) :
14
14
this . _bgAria ( "busy" , "false" ) ;
15
15
} ,
16
16
@@ -21,29 +21,29 @@ $.fn.extend({
21
21
22
22
_bgEnableAria : function ( enable )
23
23
{
24
- return ( enable == null || enable ) ?
25
- this . removeClass ( "disabled" ) . _bgAria ( "disabled" , "false" ) :
24
+ return ( enable == null || enable ) ?
25
+ this . removeClass ( "disabled" ) . _bgAria ( "disabled" , "false" ) :
26
26
this . addClass ( "disabled" ) . _bgAria ( "disabled" , "true" ) ;
27
27
} ,
28
28
29
29
_bgEnableField : function ( enable )
30
30
{
31
- return ( enable == null || enable ) ?
32
- this . removeAttr ( "disabled" ) :
31
+ return ( enable == null || enable ) ?
32
+ this . removeAttr ( "disabled" ) :
33
33
this . attr ( "disabled" , "disable" ) ;
34
34
} ,
35
35
36
36
_bgShowAria : function ( show )
37
37
{
38
- return ( show == null || show ) ?
38
+ return ( show == null || show ) ?
39
39
this . show ( ) . _bgAria ( "hidden" , "false" ) :
40
40
this . hide ( ) . _bgAria ( "hidden" , "true" ) ;
41
41
} ,
42
42
43
43
_bgSelectAria : function ( select )
44
44
{
45
- return ( select == null || select ) ?
46
- this . addClass ( "active" ) . _bgAria ( "selected" , "true" ) :
45
+ return ( select == null || select ) ?
46
+ this . addClass ( "active" ) . _bgAria ( "selected" , "true" ) :
47
47
this . removeClass ( "active" ) . _bgAria ( "selected" , "false" ) ;
48
48
} ,
49
49
@@ -53,200 +53,171 @@ $.fn.extend({
53
53
}
54
54
} ) ;
55
55
56
- if ( ! String . prototype . resolve )
57
- {
58
- var formatter = {
59
- "checked" : function ( value )
56
+ var formatter = {
57
+ "checked" : function ( value )
58
+ {
59
+ if ( typeof value === "boolean" )
60
60
{
61
- if ( typeof value === "boolean" )
61
+ return ( value ) ? "checked=\"checked\"" : "" ;
62
+ }
63
+ return value ;
64
+ }
65
+ } ;
66
+
67
+ var _templateCache = { } ;
68
+ var getTemplate = function ( template ) {
69
+ if ( ! _templateCache . hasOwnProperty ( template ) ) {
70
+ var str = template . split ( / { ( [ ^ { } ] + ) } / g) ;
71
+
72
+ for ( var i = 0 ; i < str . length ; i ++ ) {
73
+ var s = str [ i ] ;
74
+ var hasStart = ( s . charAt ( 0 ) === "}" ) ;
75
+ var hasEnd = ( s . charAt ( s . length - 1 ) === "{" ) ;
76
+ if ( hasStart )
62
77
{
63
- return ( value ) ? "checked=\"checked\"" : "" ;
78
+ s = s . substr ( 1 ) ;
79
+ }
80
+ if ( hasEnd )
81
+ {
82
+ s = s . substr ( 0 , s . length - 1 ) ;
64
83
}
65
- return value ;
66
- }
67
- } ;
68
-
69
- var _templateCache = { } ;
70
- var getTemplate = function ( template ) {
71
- if ( ! _templateCache . hasOwnProperty ( template ) ) {
72
- var str = template . split ( / { ( [ ^ { } ] + ) } / g) ;
73
-
74
- for ( var i = 0 ; i < str . length ; i ++ ) {
75
- var s = str [ i ] ;
76
- var hasStart = ( s . charAt ( 0 ) === "}" ) ;
77
- var hasEnd = ( s . charAt ( s . length - 1 ) === "{" ) ;
78
- if ( hasStart )
79
- {
80
- s = s . substr ( 1 ) ;
81
- }
82
- if ( hasEnd )
83
- {
84
- s = s . substr ( 0 , s . length - 1 ) ;
85
- }
86
84
87
- if ( hasStart || hasEnd )
88
- {
89
- str [ i ] = s ; //plain old html
90
- } else {
91
- str [ i ] = {
92
- token : str [ i ] ,
93
- key : s . split ( "." )
94
- } ;
95
- }
85
+ if ( hasStart || hasEnd )
86
+ {
87
+ str [ i ] = s ; //plain old html
88
+ } else {
89
+ str [ i ] = {
90
+ token : str [ i ] ,
91
+ key : s . split ( "." )
92
+ } ;
96
93
}
97
- _templateCache [ template ] = str ;
98
94
}
99
- return _templateCache [ template ] ;
100
- } ;
101
-
102
- // ONLY FOR TESTING
103
- String . prototype . resolve_old = function ( substitutes , prefixes )
104
- {
105
- var result = this ;
95
+ _templateCache [ template ] = str ;
96
+ }
97
+ return _templateCache [ template ] ;
98
+ } ;
99
+ /*
100
+ // ONLY FOR TESTING
101
+ var String.prototype.resolve_old = function (substitutes, prefixes)
102
+ {
103
+ var result = this;
106
104
107
- $ . each ( substitutes , function ( key , value )
105
+ $.each(substitutes, function (key, value)
106
+ {
107
+ if (value != null && typeof value !== "function")
108
108
{
109
- if ( value != null && typeof value !== "function ")
109
+ if (typeof value === "object ")
110
110
{
111
- if ( typeof value === "object" )
112
- {
113
- var keys = ( prefixes ) ? $ . extend ( [ ] , prefixes ) : [ ] ;
114
- keys . push ( key ) ;
115
- result = result . resolve_old ( value , keys ) + "" ;
116
- }
117
- else
118
- {
119
- if ( formatter && formatter [ key ] && typeof formatter [ key ] === "function" )
120
- {
121
- value = formatter [ key ] ( value ) ;
122
- }
123
- key = ( prefixes ) ? prefixes . join ( "." ) + "." + key : key ;
124
- var pattern = new RegExp ( "\\{\\{" + key + "\\}\\}" , "gm" ) ;
125
- result = result . replace ( pattern , ( value . replace ) ? value . replace ( / \$ / gi, "$" ) : value ) ;
126
- }
111
+ var keys = (prefixes) ? $.extend([], prefixes) : [];
112
+ keys.push(key);
113
+ result = result.resolve_old(value, keys) + "";
127
114
}
128
- } ) ;
129
-
130
- return result ;
131
- } ;
132
-
133
- String . prototype . resolve = function ( substitutes , prefixes )
134
- {
135
- var str = getTemplate ( this ) ;
136
- var result = "" ;
137
- for ( var i = 0 ; i < str . length ; i ++ ) {
138
- if ( typeof str [ i ] === "object" ) {
139
- var key = str [ i ] . key ;
140
- var v = "" ;
141
- // now we have a variable to be substitued
142
- if ( substitutes . hasOwnProperty ( key [ 0 ] ) )
143
- {
144
- v = substitutes [ key [ 0 ] ] ;
145
- }
146
- else
115
+ else
116
+ {
117
+ if (formatter && formatter[key] && typeof formatter[key] === "function")
147
118
{
148
- continue ;
119
+ value = formatter[key](value) ;
149
120
}
150
-
151
- for ( var k = 1 ; k < key . length ; k ++ ) {
152
- if ( v . hasOwnProperty ( key [ k ] ) ) {
153
- v = v [ key [ k ] ] ;
154
- } else {
155
- v = "" ;
156
- break ;
157
- }
158
- }
159
- var formatter_key = key [ key . length - 1 ] ;
160
- if ( formatter && formatter [ formatter_key ] && typeof formatter [ formatter_key ] === "function" ) {
161
- result += formatter [ formatter_key ] ( v ) ;
162
- } else {
163
- result += v ;
164
- }
165
- } else {
166
- result += str [ i ] ; // plain old html
121
+ key = (prefixes) ? prefixes.join(".") + "." + key : key;
122
+ var pattern = new RegExp("\\{\\{" + key + "\\}\\}", "gm");
123
+ result = result.replace(pattern, (value.replace) ? value.replace(/\$/gi, "$") : value);
167
124
}
168
125
}
169
- // ONLY FOR TESTING, remove for release or testing performance of individal approaches
170
- var result_old = this . resolve_old ( substitutes , prefixes ) ;
171
- if ( result !== result_old ) {
172
- console . warn ( "Different templating result" ) ;
173
- console . log ( "new: " , result ) ;
174
- console . log ( "old: " , result_old ) ;
175
- }
176
- return result ;
177
- } ;
178
- }
126
+ });
179
127
180
- if ( ! Array . prototype . first )
128
+ return result;
129
+ };
130
+ */
131
+ var template = function ( template , substitutes , prefixes )
181
132
{
182
- Array . prototype . first = function ( condition )
183
- {
184
- for ( var i = 0 ; i < this . length ; i ++ )
185
- {
186
- var item = this [ i ] ;
187
- if ( condition ( item ) )
133
+ var str = getTemplate ( template ) ;
134
+ var result = "" ;
135
+ for ( var i = 0 ; i < str . length ; i ++ ) {
136
+ if ( typeof str [ i ] === "object" ) {
137
+ var key = str [ i ] . key ;
138
+ var v = "" ;
139
+ // now we have a variable to be substitued
140
+ if ( substitutes . hasOwnProperty ( key [ 0 ] ) )
188
141
{
189
- return item ;
142
+ v = substitutes [ key [ 0 ] ] ;
143
+ }
144
+ else
145
+ {
146
+ continue ;
190
147
}
191
- }
192
- return null ;
193
- } ;
194
- }
195
148
196
- if ( ! Array . prototype . contains )
149
+ for ( var k = 1 ; k < key . length ; k ++ ) {
150
+ if ( v . hasOwnProperty ( key [ k ] ) ) {
151
+ v = v [ key [ k ] ] ;
152
+ } else {
153
+ v = "" ;
154
+ break ;
155
+ }
156
+ }
157
+ var formatter_key = key [ key . length - 1 ] ;
158
+ if ( formatter && formatter [ formatter_key ] && typeof formatter [ formatter_key ] === "function" ) {
159
+ result += formatter [ formatter_key ] ( v ) ;
160
+ } else {
161
+ result += v ;
162
+ }
163
+ } else {
164
+ result += str [ i ] ; // plain old html
165
+ }
166
+ }
167
+ // ONLY FOR TESTING
168
+ /*
169
+ var result_old = this.resolve_old(substitutes, prefixes);
170
+ if (result !== result_old){
171
+ console.warn("Difference templating result");
172
+ console.log(result);
173
+ console.log(result_old);
174
+ }
175
+ */
176
+ return result ;
177
+ } ;
178
+ var arrayContains = function ( arr , condition )
197
179
{
198
- Array . prototype . contains = function ( condition )
180
+ for ( var i = 0 ; i < arr . length ; i ++ )
199
181
{
200
- for ( var i = 0 ; i < this . length ; i ++ )
182
+ var item = arr [ i ] ;
183
+ if ( condition ( item ) )
201
184
{
202
- var item = this [ i ] ;
203
- if ( condition ( item ) )
204
- {
205
- return true ;
206
- }
185
+ return true ;
207
186
}
208
- return false ;
209
- } ;
210
- }
187
+ }
188
+ return false ;
189
+ } ;
211
190
212
- if ( ! Array . prototype . page )
191
+ var arrayPage = function ( arr , page , size )
213
192
{
214
- Array . prototype . page = function ( page , size )
215
- {
216
- var skip = ( page - 1 ) * size ,
217
- end = skip + size ;
218
- return ( this . length > skip ) ?
219
- ( this . length > end ) ? this . slice ( skip , end ) :
220
- this . slice ( skip ) : [ ] ;
221
- } ;
222
- }
223
-
224
- if ( ! Array . prototype . where )
193
+ var skip = ( page - 1 ) * size ,
194
+ end = skip + size ;
195
+ return ( arr . length > skip ) ?
196
+ ( arr . length > end ) ? arr . slice ( skip , end ) :
197
+ arr . slice ( skip ) : [ ] ;
198
+ } ;
199
+
200
+ var arrayWhere = function ( arr , condition )
225
201
{
226
- Array . prototype . where = function ( condition )
202
+ var result = [ ] ;
203
+ for ( var i = 0 ; i < arr . length ; i ++ )
227
204
{
228
- var result = [ ] ;
229
- for ( var i = 0 ; i < this . length ; i ++ )
205
+ var item = arr [ i ] ;
206
+ if ( condition ( item ) )
230
207
{
231
- var item = this [ i ] ;
232
- if ( condition ( item ) )
233
- {
234
- result . push ( item ) ;
235
- }
208
+ result . push ( item ) ;
236
209
}
237
- return result ;
238
- } ;
239
- }
210
+ }
211
+ return result ;
212
+ } ;
240
213
241
- if ( ! Array . prototype . propValues )
214
+ var arrayPropValues = function ( arr , propName )
242
215
{
243
- Array . prototype . propValues = function ( propName )
216
+ var result = [ ] ;
217
+ for ( var i = 0 ; i < arr . length ; i ++ )
244
218
{
245
- var result = [ ] ;
246
- for ( var i = 0 ; i < this . length ; i ++ )
247
- {
248
- result . push ( this [ i ] [ propName ] ) ;
249
- }
250
- return result ;
251
- } ;
252
- }
219
+ result . push ( arr [ i ] [ propName ] ) ;
220
+ }
221
+ return result ;
222
+ } ;
223
+
0 commit comments