Merge pull request #1492 from ether/feature/cleanup

Several code cleanups
pull/1493/merge
John McLear 2013-02-10 13:38:26 -08:00
commit bd33061c8a
5 changed files with 52 additions and 9671 deletions

View File

@ -1,5 +1,5 @@
/**
* This code is mostly from the old Etherpad. Please help us to comment this code.
* This code is mostly from the old Etherpad. Please help us to comment this code.
* This helps other people to understand this code better and helps them to improve it.
* TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED
*/
@ -34,18 +34,6 @@ function object(o)
return new f();
}
var userAgent = (((function () {return this;})().navigator || {}).userAgent || 'node-js').toLowerCase();
var browser = {
version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
safari: /webkit/.test(userAgent),
opera: /opera/.test(userAgent),
msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent),
windows: /windows/.test(userAgent),
mobile: /mobile/.test(userAgent) || /android/.test(userAgent)
};
function getAssoc(obj, name)
{
return obj["_magicdom_" + name];
@ -96,7 +84,6 @@ var noop = function(){};
exports.isNodeText = isNodeText;
exports.object = object;
exports.browser = browser;
exports.getAssoc = getAssoc;
exports.setAssoc = setAssoc;
exports.binarySearch = binarySearch;

View File

@ -157,20 +157,6 @@ function Ace2Inner(){
var scheduler = parent; // hack for opera required
// Ugly hack for Firefox 18
// get the timeout and interval methods from the parent iframe
// This hack breaks IE8 so be careful
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
try{
setTimeout = scheduler.setTimeout;
clearTimeout = scheduler.clearTimeout;
setInterval = scheduler.setInterval;
clearInterval = scheduler.clearInterval;
}catch(err){
// IE8 can panic here.
}
}
var textFace = 'monospace';
var textSize = 12;
@ -4666,7 +4652,7 @@ function Ace2Inner(){
{
$(document).on("keydown", handleKeyEvent);
// Hack for Opera to stop it firing twice on events
if (/Opera[\/\s](\d+\.\d+)/.test(!navigator.userAgent)){
if ($.browser.opera){
$(document).on("keypress", handleKeyEvent);
}
$(document).on("keyup", handleKeyEvent);

9641
src/static/js/jquery.js vendored

File diff suppressed because it is too large Load Diff

44
src/static/js/jquery_browser.js vendored Normal file
View File

@ -0,0 +1,44 @@
/*
Copied from jQuery 1.8, the last jquery version with browser recognition support
*/
// Use of jQuery.browser is frowned upon.
// More details: http://api.jquery.com/jQuery.browser
// jQuery.uaMatch maintained for back-compat
var uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
var userAgent = navigator.userAgent;
var matched = uaMatch(userAgent);
var browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
//custom extensions, the original jquery didn't have these
browser.windows = /windows/.test(userAgent);
browser.mobile = /mobile/.test(userAgent) || /android/.test(userAgent);
exports.browser = browser;

View File

@ -2,4 +2,9 @@
// Proviedes a require'able version of jQuery without leaking $ and jQuery;
require('./jquery');
exports.jQuery = exports.$ = $.noConflict(true);
var jq = window.$.noConflict(true);
//added the old browser recognition
jq.browser = require('./jquery_browser').browser;
exports.jQuery = exports.$ = jq;