tailog 0.4.3 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +2 -0
- data/README.md +4 -0
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +288 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/javascripts/ansi_up.js +1 -321
- data/app/assets/javascripts/jquery.form.js +11 -0
- data/app/assets/javascripts/jquery.highlight.js +1 -142
- data/app/assets/javascripts/jquery.js +16 -0
- data/app/assets/stylesheets/application.css +5 -1
- data/app/assets/stylesheets/bootstrap.css +5 -0
- data/app/views/layout.erb +4 -4
- data/app/views/logs/index.erb +34 -11
- data/lib/tailog/eval.rb +8 -2
- data/lib/tailog/version.rb +1 -1
- data/lib/tailog/watch_methods.rb +7 -0
- metadata +12 -3
@@ -3,324 +3,4 @@
|
|
3
3
|
// author : Dru Nelson
|
4
4
|
// license : MIT
|
5
5
|
// http://github.com/drudru/ansi_up
|
6
|
-
|
7
|
-
(function (Date, undefined) {
|
8
|
-
|
9
|
-
var ansi_up,
|
10
|
-
VERSION = "1.3.0",
|
11
|
-
|
12
|
-
// check for nodeJS
|
13
|
-
hasModule = (typeof module !== 'undefined'),
|
14
|
-
|
15
|
-
// Normal and then Bright
|
16
|
-
ANSI_COLORS = [
|
17
|
-
[
|
18
|
-
{ color: "27, 27, 27", 'class': "ansi-black" },
|
19
|
-
{ color: "182, 80, 47", 'class': "ansi-red" },
|
20
|
-
{ color: "141, 161, 88", 'class': "ansi-green" },
|
21
|
-
{ color: "220, 175, 95", 'class': "ansi-yellow" },
|
22
|
-
{ color: "126, 170, 199", 'class': "ansi-blue" },
|
23
|
-
{ color: "176, 101, 152", 'class': "ansi-magenta" },
|
24
|
-
{ color: "141, 220, 217", 'class': "ansi-cyan" },
|
25
|
-
{ color: "217, 217, 217", 'class': "ansi-white" }
|
26
|
-
], [
|
27
|
-
{ color: "27, 27, 27", 'class': "ansi-bright-black" },
|
28
|
-
{ color: "182, 80, 47", 'class': "ansi-bright-red" },
|
29
|
-
{ color: "141, 161, 88", 'class': "ansi-bright-green" },
|
30
|
-
{ color: "220, 175, 95", 'class': "ansi-bright-yellow" },
|
31
|
-
{ color: "126, 170, 199", 'class': "ansi-bright-blue" },
|
32
|
-
{ color: "176, 101, 152", 'class': "ansi-bright-magenta" },
|
33
|
-
{ color: "141, 220, 217", 'class': "ansi-bright-cyan" },
|
34
|
-
{ color: "217, 217, 217", 'class': "ansi-bright-white" }
|
35
|
-
]
|
36
|
-
],
|
37
|
-
|
38
|
-
// 256 Colors Palette
|
39
|
-
PALETTE_COLORS;
|
40
|
-
|
41
|
-
function Ansi_Up() {
|
42
|
-
this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;
|
43
|
-
this.bright = 0;
|
44
|
-
}
|
45
|
-
|
46
|
-
Ansi_Up.prototype.setup_palette = function() {
|
47
|
-
PALETTE_COLORS = [];
|
48
|
-
// Index 0..15 : System color
|
49
|
-
(function() {
|
50
|
-
var i, j;
|
51
|
-
for (i = 0; i < 2; ++i) {
|
52
|
-
for (j = 0; j < 8; ++j) {
|
53
|
-
PALETTE_COLORS.push(ANSI_COLORS[i][j]['color']);
|
54
|
-
}
|
55
|
-
}
|
56
|
-
})();
|
57
|
-
|
58
|
-
// Index 16..231 : RGB 6x6x6
|
59
|
-
// https://gist.github.com/jasonm23/2868981#file-xterm-256color-yaml
|
60
|
-
(function() {
|
61
|
-
var levels = [0, 95, 135, 175, 215, 255];
|
62
|
-
var format = function (r, g, b) { return levels[r] + ', ' + levels[g] + ', ' + levels[b] };
|
63
|
-
var r, g, b;
|
64
|
-
for (r = 0; r < 6; ++r) {
|
65
|
-
for (g = 0; g < 6; ++g) {
|
66
|
-
for (b = 0; b < 6; ++b) {
|
67
|
-
PALETTE_COLORS.push(format.call(this, r, g, b));
|
68
|
-
}
|
69
|
-
}
|
70
|
-
}
|
71
|
-
})();
|
72
|
-
|
73
|
-
// Index 232..255 : Grayscale
|
74
|
-
(function() {
|
75
|
-
var level = 8;
|
76
|
-
var format = function(level) { return level + ', ' + level + ', ' + level };
|
77
|
-
var i;
|
78
|
-
for (i = 0; i < 24; ++i, level += 10) {
|
79
|
-
PALETTE_COLORS.push(format.call(this, level));
|
80
|
-
}
|
81
|
-
})();
|
82
|
-
};
|
83
|
-
|
84
|
-
Ansi_Up.prototype.escape_for_html = function (txt) {
|
85
|
-
return txt.replace(/[&<>]/gm, function(str) {
|
86
|
-
if (str == "&") return "&";
|
87
|
-
if (str == "<") return "<";
|
88
|
-
if (str == ">") return ">";
|
89
|
-
});
|
90
|
-
};
|
91
|
-
|
92
|
-
Ansi_Up.prototype.linkify = function (txt) {
|
93
|
-
return txt.replace(/(https?:\/\/[^\s]+)/gm, function(str) {
|
94
|
-
return "<a href=\"" + str + "\">" + str + "</a>";
|
95
|
-
});
|
96
|
-
};
|
97
|
-
|
98
|
-
Ansi_Up.prototype.ansi_to_html = function (txt, options) {
|
99
|
-
return this.process(txt, options, true);
|
100
|
-
};
|
101
|
-
|
102
|
-
Ansi_Up.prototype.ansi_to_text = function (txt) {
|
103
|
-
var options = {};
|
104
|
-
return this.process(txt, options, false);
|
105
|
-
};
|
106
|
-
|
107
|
-
Ansi_Up.prototype.process = function (txt, options, markup) {
|
108
|
-
var self = this;
|
109
|
-
var raw_text_chunks = txt.split(/\033\[/);
|
110
|
-
var first_chunk = raw_text_chunks.shift(); // the first chunk is not the result of the split
|
111
|
-
|
112
|
-
var color_chunks = raw_text_chunks.map(function (chunk) {
|
113
|
-
return self.process_chunk(chunk, options, markup);
|
114
|
-
});
|
115
|
-
|
116
|
-
color_chunks.unshift(first_chunk);
|
117
|
-
|
118
|
-
return color_chunks.join('');
|
119
|
-
};
|
120
|
-
|
121
|
-
Ansi_Up.prototype.process_chunk = function (text, options, markup) {
|
122
|
-
|
123
|
-
// Are we using classes or styles?
|
124
|
-
options = typeof options == 'undefined' ? {} : options;
|
125
|
-
var use_classes = typeof options.use_classes != 'undefined' && options.use_classes;
|
126
|
-
var key = use_classes ? 'class' : 'color';
|
127
|
-
|
128
|
-
// Each 'chunk' is the text after the CSI (ESC + '[') and before the next CSI/EOF.
|
129
|
-
//
|
130
|
-
// This regex matches four groups within a chunk.
|
131
|
-
//
|
132
|
-
// The first and third groups match code type.
|
133
|
-
// We supported only SGR command. It has empty first group and 'm' in third.
|
134
|
-
//
|
135
|
-
// The second group matches all of the number+semicolon command sequences
|
136
|
-
// before the 'm' (or other trailing) character.
|
137
|
-
// These are the graphics or SGR commands.
|
138
|
-
//
|
139
|
-
// The last group is the text (including newlines) that is colored by
|
140
|
-
// the other group's commands.
|
141
|
-
var matches = text.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);
|
142
|
-
|
143
|
-
if (!matches) return text;
|
144
|
-
|
145
|
-
var orig_txt = matches[4];
|
146
|
-
var nums = matches[2].split(';');
|
147
|
-
|
148
|
-
// We currently support only "SGR" (Select Graphic Rendition)
|
149
|
-
// Simply ignore if not a SGR command.
|
150
|
-
if (matches[1] !== '' || matches[3] !== 'm') {
|
151
|
-
return orig_txt;
|
152
|
-
}
|
153
|
-
|
154
|
-
if (!markup) {
|
155
|
-
return orig_txt;
|
156
|
-
}
|
157
|
-
|
158
|
-
var self = this;
|
159
|
-
|
160
|
-
while (nums.length > 0) {
|
161
|
-
var num_str = nums.shift();
|
162
|
-
var num = parseInt(num_str);
|
163
|
-
|
164
|
-
if (isNaN(num) || num === 0) {
|
165
|
-
self.fg = self.bg = null;
|
166
|
-
self.bright = 0;
|
167
|
-
} else if (num === 1) {
|
168
|
-
self.bright = 1;
|
169
|
-
} else if (num == 39) {
|
170
|
-
self.fg = null;
|
171
|
-
} else if (num == 49) {
|
172
|
-
self.bg = null;
|
173
|
-
} else if ((num >= 30) && (num < 38)) {
|
174
|
-
self.fg = ANSI_COLORS[self.bright][(num % 10)][key];
|
175
|
-
} else if ((num >= 90) && (num < 98)) {
|
176
|
-
self.fg = ANSI_COLORS[1][(num % 10)][key];
|
177
|
-
} else if ((num >= 40) && (num < 48)) {
|
178
|
-
self.bg = ANSI_COLORS[0][(num % 10)][key];
|
179
|
-
} else if ((num >= 100) && (num < 108)) {
|
180
|
-
self.bg = ANSI_COLORS[1][(num % 10)][key];
|
181
|
-
} else if (num === 38 || num === 48) { // extend color (38=fg, 48=bg)
|
182
|
-
(function() {
|
183
|
-
var is_foreground = (num === 38);
|
184
|
-
if (nums.length >= 1) {
|
185
|
-
var mode = nums.shift();
|
186
|
-
if (mode === '5' && nums.length >= 1) { // palette color
|
187
|
-
var palette_index = parseInt(nums.shift());
|
188
|
-
if (palette_index >= 0 && palette_index <= 255) {
|
189
|
-
if (!use_classes) {
|
190
|
-
if (!PALETTE_COLORS) {
|
191
|
-
self.setup_palette.call(self);
|
192
|
-
}
|
193
|
-
if (is_foreground) {
|
194
|
-
self.fg = PALETTE_COLORS[palette_index];
|
195
|
-
} else {
|
196
|
-
self.bg = PALETTE_COLORS[palette_index];
|
197
|
-
}
|
198
|
-
} else {
|
199
|
-
var klass = (palette_index >= 16)
|
200
|
-
? ('ansi-palette-' + palette_index)
|
201
|
-
: ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8]['class'];
|
202
|
-
if (is_foreground) {
|
203
|
-
self.fg = klass;
|
204
|
-
} else {
|
205
|
-
self.bg = klass;
|
206
|
-
}
|
207
|
-
}
|
208
|
-
}
|
209
|
-
} else if(mode === '2' && nums.length >= 3) { // true color
|
210
|
-
var r = parseInt(nums.shift());
|
211
|
-
var g = parseInt(nums.shift());
|
212
|
-
var b = parseInt(nums.shift());
|
213
|
-
if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {
|
214
|
-
var color = r + ', ' + g + ', ' + b;
|
215
|
-
if (!use_classes) {
|
216
|
-
if (is_foreground) {
|
217
|
-
self.fg = color;
|
218
|
-
} else {
|
219
|
-
self.bg = color;
|
220
|
-
}
|
221
|
-
} else {
|
222
|
-
if (is_foreground) {
|
223
|
-
self.fg = 'ansi-truecolor';
|
224
|
-
self.fg_truecolor = color;
|
225
|
-
} else {
|
226
|
-
self.bg = 'ansi-truecolor';
|
227
|
-
self.bg_truecolor = color;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
}
|
231
|
-
}
|
232
|
-
}
|
233
|
-
})();
|
234
|
-
}
|
235
|
-
}
|
236
|
-
|
237
|
-
if ((self.fg === null) && (self.bg === null)) {
|
238
|
-
return orig_txt;
|
239
|
-
} else {
|
240
|
-
var styles = [];
|
241
|
-
var classes = [];
|
242
|
-
var data = {};
|
243
|
-
var render_data = function (data) {
|
244
|
-
var fragments = [];
|
245
|
-
var key;
|
246
|
-
for (key in data) {
|
247
|
-
if (data.hasOwnProperty(key)) {
|
248
|
-
fragments.push('data-' + key + '="' + this.escape_for_html(data[key]) + '"');
|
249
|
-
}
|
250
|
-
}
|
251
|
-
return fragments.length > 0 ? ' ' + fragments.join(' ') : '';
|
252
|
-
};
|
253
|
-
|
254
|
-
if (self.fg) {
|
255
|
-
if (use_classes) {
|
256
|
-
classes.push(self.fg + "-fg");
|
257
|
-
if (self.fg_truecolor !== null) {
|
258
|
-
data['ansi-truecolor-fg'] = self.fg_truecolor;
|
259
|
-
self.fg_truecolor = null;
|
260
|
-
}
|
261
|
-
} else {
|
262
|
-
styles.push("color:rgb(" + self.fg + ")");
|
263
|
-
}
|
264
|
-
}
|
265
|
-
if (self.bg) {
|
266
|
-
if (use_classes) {
|
267
|
-
classes.push(self.bg + "-bg");
|
268
|
-
if (self.bg_truecolor !== null) {
|
269
|
-
data['ansi-truecolor-bg'] = self.bg_truecolor;
|
270
|
-
self.bg_truecolor = null;
|
271
|
-
}
|
272
|
-
} else {
|
273
|
-
styles.push("background-color:rgb(" + self.bg + ")");
|
274
|
-
}
|
275
|
-
}
|
276
|
-
if (use_classes) {
|
277
|
-
return '<span class="' + classes.join(' ') + '"' + render_data.call(self, data) + '>' + orig_txt + '</span>';
|
278
|
-
} else {
|
279
|
-
return '<span style="' + styles.join(';') + '"' + render_data.call(self, data) + '>' + orig_txt + '</span>';
|
280
|
-
}
|
281
|
-
}
|
282
|
-
};
|
283
|
-
|
284
|
-
// Module exports
|
285
|
-
ansi_up = {
|
286
|
-
|
287
|
-
escape_for_html: function (txt) {
|
288
|
-
var a2h = new Ansi_Up();
|
289
|
-
return a2h.escape_for_html(txt);
|
290
|
-
},
|
291
|
-
|
292
|
-
linkify: function (txt) {
|
293
|
-
var a2h = new Ansi_Up();
|
294
|
-
return a2h.linkify(txt);
|
295
|
-
},
|
296
|
-
|
297
|
-
ansi_to_html: function (txt, options) {
|
298
|
-
var a2h = new Ansi_Up();
|
299
|
-
return a2h.ansi_to_html(txt, options);
|
300
|
-
},
|
301
|
-
|
302
|
-
ansi_to_text: function (txt) {
|
303
|
-
var a2h = new Ansi_Up();
|
304
|
-
return a2h.ansi_to_text(txt);
|
305
|
-
},
|
306
|
-
|
307
|
-
ansi_to_html_obj: function () {
|
308
|
-
return new Ansi_Up();
|
309
|
-
}
|
310
|
-
};
|
311
|
-
|
312
|
-
// CommonJS module is defined
|
313
|
-
if (hasModule) {
|
314
|
-
module.exports = ansi_up;
|
315
|
-
}
|
316
|
-
/*global ender:false */
|
317
|
-
if (typeof window !== 'undefined' && typeof ender === 'undefined') {
|
318
|
-
window.ansi_up = ansi_up;
|
319
|
-
}
|
320
|
-
/*global define:false */
|
321
|
-
if (typeof define === "function" && define.amd) {
|
322
|
-
define("ansi_up", [], function () {
|
323
|
-
return ansi_up;
|
324
|
-
});
|
325
|
-
}
|
326
|
-
})(Date);
|
6
|
+
!function(r,t){function n(){this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0}var o,s,e="undefined"!=typeof module,i=[[{color:"27, 27, 27","class":"ansi-black"},{color:"182, 80, 47","class":"ansi-red"},{color:"141, 161, 88","class":"ansi-green"},{color:"220, 175, 95","class":"ansi-yellow"},{color:"126, 170, 199","class":"ansi-blue"},{color:"176, 101, 152","class":"ansi-magenta"},{color:"141, 220, 217","class":"ansi-cyan"},{color:"217, 217, 217","class":"ansi-white"}],[{color:"27, 27, 27","class":"ansi-bright-black"},{color:"182, 80, 47","class":"ansi-bright-red"},{color:"141, 161, 88","class":"ansi-bright-green"},{color:"220, 175, 95","class":"ansi-bright-yellow"},{color:"126, 170, 199","class":"ansi-bright-blue"},{color:"176, 101, 152","class":"ansi-bright-magenta"},{color:"141, 220, 217","class":"ansi-bright-cyan"},{color:"217, 217, 217","class":"ansi-bright-white"}]];n.prototype.setup_palette=function(){s=[],function(){var r,t;for(r=0;2>r;++r)for(t=0;8>t;++t)s.push(i[r][t].color)}(),function(){var r,t,n,o=[0,95,135,175,215,255],e=function(r,t,n){return o[r]+", "+o[t]+", "+o[n]};for(r=0;6>r;++r)for(t=0;6>t;++t)for(n=0;6>n;++n)s.push(e.call(this,r,t,n))}(),function(){var r,t=8,n=function(r){return r+", "+r+", "+r};for(r=0;24>r;++r,t+=10)s.push(n.call(this,t))}()},n.prototype.escape_for_html=function(r){return r.replace(/[&<>]/gm,function(r){return"&"==r?"&":"<"==r?"<":">"==r?">":t})},n.prototype.linkify=function(r){return r.replace(/(https?:\/\/[^\s]+)/gm,function(r){return'<a href="'+r+'">'+r+"</a>"})},n.prototype.ansi_to_html=function(r,t){return this.process(r,t,!0)},n.prototype.ansi_to_text=function(r){var t={};return this.process(r,t,!1)},n.prototype.process=function(r,t,n){var o=this,s=r.split(/\033\[/),e=s.shift(),i=s.map(function(r){return o.process_chunk(r,t,n)});return i.unshift(e),i.join("")},n.prototype.process_chunk=function(r,n,o){n=t===n?{}:n;var e=t!==n.use_classes&&n.use_classes,l=e?"class":"color",a=r.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!a)return r;var c=a[4],u=a[2].split(";");if(""!==a[1]||"m"!==a[3])return c;if(!o)return c;for(var f=this;u.length>0;){var g=u.shift(),h=parseInt(g);isNaN(h)||0===h?(f.fg=f.bg=null,f.bright=0):1===h?f.bright=1:39==h?f.fg=null:49==h?f.bg=null:h>=30&&38>h?f.fg=i[f.bright][h%10][l]:h>=90&&98>h?f.fg=i[1][h%10][l]:h>=40&&48>h?f.bg=i[0][h%10][l]:h>=100&&108>h?f.bg=i[1][h%10][l]:(38===h||48===h)&&!function(){var r=38===h;if(u.length>=1){var t=u.shift();if("5"!==t||u.length<1){if("2"===t&&u.length>=3){var n=parseInt(u.shift()),o=parseInt(u.shift()),l=parseInt(u.shift());if(!(0>n||n>255||0>o||o>255||0>l||l>255)){var a=n+", "+o+", "+l;e?r?(f.fg="ansi-truecolor",f.fg_truecolor=a):(f.bg="ansi-truecolor",f.bg_truecolor=a):r?f.fg=a:f.bg=a}}}else{var c=parseInt(u.shift());if(c>=0&&255>=c)if(e){var g=16>c?i[c>7?1:0][c%8]["class"]:"ansi-palette-"+c;r?f.fg=g:f.bg=g}else s||f.setup_palette.call(f),r?f.fg=s[c]:f.bg=s[c]}}}()}if(null===f.fg&&null===f.bg)return c;var p=[],_=[],b={},v=function(r){var t,n=[];for(t in r)r.hasOwnProperty(t)&&n.push("data-"+t+'="'+this.escape_for_html(r[t])+'"');return n.length>0?" "+n.join(" "):""};return f.fg&&(e?(_.push(f.fg+"-fg"),null!==f.fg_truecolor&&(b["ansi-truecolor-fg"]=f.fg_truecolor,f.fg_truecolor=null)):p.push("color:rgb("+f.fg+")")),f.bg&&(e?(_.push(f.bg+"-bg"),null!==f.bg_truecolor&&(b["ansi-truecolor-bg"]=f.bg_truecolor,f.bg_truecolor=null)):p.push("background-color:rgb("+f.bg+")")),e?'<span class="'+_.join(" ")+'"'+v.call(f,b)+">"+c+"</span>":'<span style="'+p.join(";")+'"'+v.call(f,b)+">"+c+"</span>"},o={escape_for_html:function(r){var t=new n;return t.escape_for_html(r)},linkify:function(r){var t=new n;return t.linkify(r)},ansi_to_html:function(r,t){var o=new n;return o.ansi_to_html(r,t)},ansi_to_text:function(r){var t=new n;return t.ansi_to_text(r)},ansi_to_html_obj:function(){return new n}},e&&(module.exports=o),"undefined"!=typeof window&&"undefined"==typeof ender&&(window.ansi_up=o),"function"==typeof define&&define.amd&&define("ansi_up",[],function(){return o})}(Date);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery Form Plugin
|
3
|
+
* version: 3.51.0-2014.06.20
|
4
|
+
* Requires jQuery v1.5 or later
|
5
|
+
* Copyright (c) 2014 M. Alsup
|
6
|
+
* Examples and documentation at: http://malsup.com/jquery/form/
|
7
|
+
* Project repository: https://github.com/malsup/form
|
8
|
+
* Dual licensed under the MIT and GPL licenses.
|
9
|
+
* https://github.com/malsup/form#copyright-and-license
|
10
|
+
*/
|
11
|
+
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("<input type='file'/>").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i<a.length;i++)n.append(a[i].name,a[i].value);if(t.extraData){var o=r(t.extraData);for(i=0;i<o.length;i++)o[i]&&n.append(o[i][0],o[i][1])}t.data=null;var s=e.extend(!0,{},e.ajaxSettings,t,{contentType:!1,processData:!1,cache:!1,type:u||"POST"});t.uploadProgress&&(s.xhr=function(){var r=e.ajaxSettings.xhr();return r.upload&&r.upload.addEventListener("progress",function(e){var r=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(r=Math.ceil(a/n*100)),t.uploadProgress(e,a,n,r)},!1),r}),s.data=null;var c=s.beforeSend;return s.beforeSend=function(e,r){r.data=t.formData?t.formData:n,c&&c.call(this,e,r)},e.ajax(s)}function s(r){function n(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(r){a("cannot get iframe.contentWindow document: "+r)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){a("cannot get iframe.contentDocument: "+r),t=e.document}return t}function o(){function t(){try{var e=n(g).readyState;a("state = "+e),e&&"uninitialized"==e.toLowerCase()&&setTimeout(t,50)}catch(r){a("Server abort: ",r," (",r.name,")"),s(k),j&&clearTimeout(j),j=void 0}}var r=f.attr2("target"),i=f.attr2("action"),o="multipart/form-data",c=f.attr("enctype")||f.attr("encoding")||o;w.setAttribute("target",p),(!u||/post/i.test(u))&&w.setAttribute("method","POST"),i!=m.url&&w.setAttribute("action",m.url),m.skipEncodingOverride||u&&!/post/i.test(u)||f.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),m.timeout&&(j=setTimeout(function(){T=!0,s(D)},m.timeout));var l=[];try{if(m.extraData)for(var d in m.extraData)m.extraData.hasOwnProperty(d)&&l.push(e.isPlainObject(m.extraData[d])&&m.extraData[d].hasOwnProperty("name")&&m.extraData[d].hasOwnProperty("value")?e('<input type="hidden" name="'+m.extraData[d].name+'">').val(m.extraData[d].value).appendTo(w)[0]:e('<input type="hidden" name="'+d+'">').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l<h.length;l++)c=e(h[l]),i?c.prop("disabled",!1):c.removeAttr("disabled");if(m=e.extend(!0,{},e.ajaxSettings,t),m.context=m.context||m,p="jqFormIO"+(new Date).getTime(),m.iframeTarget?(v=e(m.iframeTarget),b=v.attr2("name"),b?p=b:v.attr2("name",p)):(v=e('<iframe name="'+p+'" src="'+m.iframeSrc+'" />'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;E<h.length;E++)h[E]=null;return this.trigger("form-submit-notify",[this,t]),this},e.fn.ajaxForm=function(n){if(n=n||{},n.delegation=n.delegation&&e.isFunction(e.fn.on),!n.delegation&&0===this.length){var i={s:this.selector,c:this.context};return!e.isReady&&i.s?(a("DOM not ready, queuing ajaxForm"),e(function(){e(i.s,i.c).ajaxForm(n)}),this):(a("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return n.delegation?(e(document).off("submit.form-plugin",this.selector,t).off("click.form-plugin",this.selector,r).on("submit.form-plugin",this.selector,n,t).on("click.form-plugin",this.selector,n,r),this):this.ajaxFormUnbind().bind("submit.form-plugin",n,t).bind("click.form-plugin",n,r)},e.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,r){var a=[];if(0===this.length)return a;var i,o=this[0],s=this.attr("id"),u=t?o.getElementsByTagName("*"):o.elements;if(u&&!/MSIE [678]/.test(navigator.userAgent)&&(u=e(u).get()),s&&(i=e(':input[form="'+s+'"]').get(),i.length&&(u=(u||[]).concat(i))),!u||!u.length)return a;var c,l,f,m,d,p,h;for(c=0,p=u.length;p>c;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;l<v.length;l++)a.push({name:f,value:v[l],type:d.type});else a.push({name:f,value:"",type:d.type})}else null!==m&&"undefined"!=typeof m&&(r&&r.push(d),a.push({name:f,value:m,type:d.type,required:d.required}));if(!t&&o.clk){var g=e(o.clk),x=g[0];f=x.name,f&&!x.disabled&&"image"==x.type&&(a.push({name:f,value:g.val()}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}))}return a},e.fn.formSerialize=function(t){return e.param(this.formToArray(t))},e.fn.fieldSerialize=function(t){var r=[];return this.each(function(){var a=this.name;if(a){var n=e.fieldValue(this,t);if(n&&n.constructor==Array)for(var i=0,o=n.length;o>i;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1});
|
@@ -4,149 +4,8 @@
|
|
4
4
|
* Based on highlight v3 by Johann Burkard
|
5
5
|
* http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
|
6
6
|
*
|
7
|
-
* Code a little bit refactored and cleaned (in my humble opinion).
|
8
|
-
* Most important changes:
|
9
|
-
* - has an option to highlight only entire words (wordsOnly - false by default),
|
10
|
-
* - has an option to be case sensitive (caseSensitive - false by default)
|
11
|
-
* - highlight element tag and class names can be specified in options
|
12
|
-
*
|
13
|
-
* Usage:
|
14
|
-
* // wrap every occurrence of text 'lorem' in content
|
15
|
-
* // with <span class='highlight'> (default options)
|
16
|
-
* $('#content').highlight('lorem');
|
17
|
-
*
|
18
|
-
* // search for and highlight more terms at once
|
19
|
-
* // so you can save some time on traversing DOM
|
20
|
-
* $('#content').highlight(['lorem', 'ipsum']);
|
21
|
-
* $('#content').highlight('lorem ipsum');
|
22
|
-
*
|
23
|
-
* // search only for entire word 'lorem'
|
24
|
-
* $('#content').highlight('lorem', { wordsOnly: true });
|
25
|
-
*
|
26
|
-
* // search only for the entire word 'C#'
|
27
|
-
* // and make sure that the word boundary can also
|
28
|
-
* // be a 'non-word' character, as well as a regex latin1 only boundary:
|
29
|
-
* $('#content').highlight('C#', { wordsOnly: true , wordsBoundary: '[\\b\\W]' });
|
30
|
-
*
|
31
|
-
* // don't ignore case during search of term 'lorem'
|
32
|
-
* $('#content').highlight('lorem', { caseSensitive: true });
|
33
|
-
*
|
34
|
-
* // wrap every occurrence of term 'ipsum' in content
|
35
|
-
* // with <em class='important'>
|
36
|
-
* $('#content').highlight('ipsum', { element: 'em', className: 'important' });
|
37
|
-
*
|
38
|
-
* // remove default highlight
|
39
|
-
* $('#content').unhighlight();
|
40
|
-
*
|
41
|
-
* // remove custom highlight
|
42
|
-
* $('#content').unhighlight({ element: 'em', className: 'important' });
|
43
|
-
*
|
44
|
-
*
|
45
7
|
* Copyright (c) 2009 Bartek Szopka
|
46
|
-
*
|
47
8
|
* Licensed under MIT license.
|
48
|
-
*
|
49
9
|
*/
|
50
10
|
|
51
|
-
(function (
|
52
|
-
if (typeof define === 'function' && define.amd) {
|
53
|
-
// AMD. Register as an anonymous module.
|
54
|
-
define(['jquery'], factory);
|
55
|
-
} else if (typeof exports === 'object') {
|
56
|
-
// Node/CommonJS
|
57
|
-
factory(require('jquery'));
|
58
|
-
} else {
|
59
|
-
// Browser globals
|
60
|
-
factory(jQuery);
|
61
|
-
}
|
62
|
-
}(function (jQuery) {
|
63
|
-
jQuery.extend({
|
64
|
-
highlight: function (node, re, nodeName, className) {
|
65
|
-
if (node.nodeType === 3) {
|
66
|
-
var match = node.data.match(re);
|
67
|
-
if (match) {
|
68
|
-
// The new highlight Element Node
|
69
|
-
var highlight = document.createElement(nodeName || 'span');
|
70
|
-
highlight.className = className || 'highlight';
|
71
|
-
// Note that we use the captured value to find the real index
|
72
|
-
// of the match. This is because we do not want to include the matching word boundaries
|
73
|
-
var capturePos = node.data.indexOf( match[1] , match.index );
|
74
|
-
|
75
|
-
// Split the node and replace the matching wordnode
|
76
|
-
// with the highlighted node
|
77
|
-
var wordNode = node.splitText(capturePos);
|
78
|
-
wordNode.splitText(match[1].length);
|
79
|
-
|
80
|
-
var wordClone = wordNode.cloneNode(true);
|
81
|
-
highlight.appendChild(wordClone);
|
82
|
-
wordNode.parentNode.replaceChild(highlight, wordNode);
|
83
|
-
return 1; //skip added node in parent
|
84
|
-
}
|
85
|
-
} else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
|
86
|
-
!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
|
87
|
-
!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
|
88
|
-
for (var i = 0; i < node.childNodes.length; i++) {
|
89
|
-
i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
|
90
|
-
}
|
91
|
-
}
|
92
|
-
return 0;
|
93
|
-
}
|
94
|
-
});
|
95
|
-
|
96
|
-
jQuery.fn.unhighlight = function (options) {
|
97
|
-
var settings = {
|
98
|
-
className: 'highlight',
|
99
|
-
element: 'span'
|
100
|
-
};
|
101
|
-
|
102
|
-
jQuery.extend(settings, options);
|
103
|
-
|
104
|
-
return this.find(settings.element + '.' + settings.className).each(function () {
|
105
|
-
var parent = this.parentNode;
|
106
|
-
parent.replaceChild(this.firstChild, this);
|
107
|
-
parent.normalize();
|
108
|
-
}).end();
|
109
|
-
};
|
110
|
-
|
111
|
-
jQuery.fn.highlight = function (words, options) {
|
112
|
-
var settings = {
|
113
|
-
className: 'highlight',
|
114
|
-
element: 'span',
|
115
|
-
caseSensitive: false,
|
116
|
-
wordsOnly: false,
|
117
|
-
wordsBoundary: '\\b'
|
118
|
-
};
|
119
|
-
|
120
|
-
jQuery.extend(settings, options);
|
121
|
-
|
122
|
-
if (typeof words === 'string') {
|
123
|
-
words = [words];
|
124
|
-
}
|
125
|
-
words = jQuery.grep(words, function(word, i){
|
126
|
-
return word != '';
|
127
|
-
});
|
128
|
-
words = jQuery.map(words, function(word, i) {
|
129
|
-
return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
130
|
-
});
|
131
|
-
|
132
|
-
if (words.length === 0) {
|
133
|
-
return this;
|
134
|
-
};
|
135
|
-
|
136
|
-
var flag = settings.caseSensitive ? '' : 'i';
|
137
|
-
// The capture parenthesis will make sure we can match
|
138
|
-
// only the matching word
|
139
|
-
var pattern = '(' + words.join('|') + ')';
|
140
|
-
if (settings.wordsOnly) {
|
141
|
-
pattern =
|
142
|
-
(settings.wordsBoundaryStart || settings.wordsBoundary) +
|
143
|
-
pattern +
|
144
|
-
(settings.wordsBoundaryEnd || settings.wordsBoundary);
|
145
|
-
}
|
146
|
-
var re = new RegExp(pattern, flag);
|
147
|
-
|
148
|
-
return this.each(function () {
|
149
|
-
jQuery.highlight(this, re, settings.element, settings.className);
|
150
|
-
});
|
151
|
-
};
|
152
|
-
}));
|
11
|
+
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){t.extend({highlight:function(n,r,e,o){if(3===n.nodeType){var s=n.data.match(r);if(s){var i=document.createElement(e||"span");i.className=o||"highlight";var a=n.data.indexOf(s[1],s.index),l=n.splitText(a);l.splitText(s[1].length);var c=l.cloneNode(!0);return i.appendChild(c),l.parentNode.replaceChild(i,l),1}}else if(1===n.nodeType&&n.childNodes&&!/(script|style)/i.test(n.tagName)&&(n.tagName!==e.toUpperCase()||n.className!==o))for(var u=0;u<n.childNodes.length;u++)u+=t.highlight(n.childNodes[u],r,e,o);return 0}}),t.fn.unhighlight=function(n){var r={className:"highlight",element:"span"};return t.extend(r,n),this.find(r.element+"."+r.className).each(function(){var t=this.parentNode;t.replaceChild(this.firstChild,this),t.normalize()}).end()},t.fn.highlight=function(n,r){var e={className:"highlight",element:"span",caseSensitive:!1,wordsOnly:!1,wordsBoundary:"\\b"};if(t.extend(e,r),"string"==typeof n&&(n=[n]),n=t.grep(n,function(t){return""!=t}),n=t.map(n,function(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}),0===n.length)return this;var o=e.caseSensitive?"":"i",s="("+n.join("|")+")";e.wordsOnly&&(s=(e.wordsBoundaryStart||e.wordsBoundary)+s+(e.wordsBoundaryEnd||e.wordsBoundary));var i=RegExp(s,o);return this.each(function(){t.highlight(this,i,e.element,e.className)})}});
|