Skip to content

Instantly share code, notes, and snippets.

@dphoebus
Created May 12, 2016 16:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dphoebus/6f4ab8300d09e9f93e1c987fd73bb249 to your computer and use it in GitHub Desktop.
Save dphoebus/6f4ab8300d09e9f93e1c987fd73bb249 to your computer and use it in GitHub Desktop.
Simple JavaScript 'console' script for debugging.
(function($, undefined){
window.kendoConsole = {
log: function(message, isError, container) {
var lastContainer = $(".console div:first", container),
counter = lastContainer.find(".count").detach(),
lastMessage = lastContainer.text(),
count = 1 * (counter.text() || 1);
lastContainer.append(counter);
if (!lastContainer.length || message !== lastMessage) {
$("<div" + (isError ? " class='error'" : "") + "/>")
.css({
marginTop: -24,
backgroundColor: isError ? "#ffbbbb" : "#b2ebf2"
})
.html(message)
.prependTo($(".console", container))
.animate({ marginTop: 0 }, 300)
.animate({ backgroundColor: isError ? "#ffdddd" : "#ffffff" }, 800);
} else {
count++;
if (counter.length) {
counter.html(count);
} else {
lastContainer.html(lastMessage)
.append("<span class='count'>" + count + "</span>");
}
}
},
error: function(message) {
this.log(message, true);
}
};
})(jQuery);
/*
* jQuery Color Animations
* Copyright 2007 John Resig
* Released under the MIT and GPL licenses.
*/
(function(jQuery) {
// We override the animation for all of these color styles
jQuery.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(i, attr) {
jQuery.fx.step[attr] = function(fx) {
if (!fx.state || typeof fx.end == typeof "") {
fx.start = getColor(fx.elem, attr);
fx.end = getRGB(fx.end);
}
fx.elem.style[attr] = ["rgb(", [
Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0)
].join(","), ")"].join("");
};
});
// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/
// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
var result;
// Check if we're already dealing with an array of colors
if (color && color.constructor == Array && color.length == 3) {
return color;
}
// Look for rgb(num,num,num)
result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color);
if (result) {
return [parseInt(result[1], 10), parseInt(result[2], 10), parseInt(result[3], 10)];
}
// Look for #a0b1c2
result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color);
if (result) {
return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];
}
// Otherwise, we're most likely dealing with a named color
return jQuery.trim(color).toLowerCase();
}
function getColor(elem, attr) {
var color;
do {
color = jQuery.css(elem, attr);
// Keep going until we find an element that has color, or we hit the body
if (color && color != "transparent" || jQuery.nodeName(elem, "body")) {
break;
}
attr = "backgroundColor";
elem = elem.parentNode;
} while (elem);
return getRGB(color);
}
var href = window.location.href;
if (href.indexOf("culture") > -1) {
$("#culture").val(href.replace(/(.*)culture=([^&]*)/, "$2"));
}
function onlocalizationchange() {
var value = $(this).val();
var href = window.location.href;
if (href.indexOf("culture") > -1) {
href = href.replace(/culture=([^&]*)/, "culture=" + value);
} else {
href += href.indexOf("?") > -1 ? "&culture=" + value : "?culture=" + value;
}
window.location.href = href;
}
$("#culture").change(onlocalizationchange);
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment