Skip to content

Instantly share code, notes, and snippets.

Tim Hobbs timhobbs

Block or report user

Report or block timhobbs

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@timhobbs
timhobbs / DynamicDropDownsHelper.cshtml
Created Oct 22, 2011
Razor dynamic drop down helper
View DynamicDropDownsHelper.cshtml
@helper DynamicDropDowns() {
<script type="text/javascript">
function listChanged($list, $target, url) {
var listId = $list.val();
if (listId == "") { // User selected first option, so clear and disable the list
$target.empty();
enableList($target, false);
return;
}
$.getJSON(url, { id: listId }, function (data) {
@timhobbs
timhobbs / MaximumWeightAttribute.cs
Created Oct 22, 2011
MaximumWeightAttribute custom attribute - usage [MaximumWeight("PropertyName", "PropertyValue", MaxWeightInt)]
View MaximumWeightAttribute.cs
public class MaximumWeightAttribute : ValidationAttribute, IClientValidatable {
private const string ERRORMSG = "Weight must not exceed {0} lbs.";
public string DependentProperty { get; set; }
public string DependentValue { get; set; }
public int MaximumWeight { get; set; }
public MaximumWeightAttribute(string dependentProperty, string dependentValue, int maximumWeight) {
this.DependentProperty = dependentProperty;
@timhobbs
timhobbs / MaximumWeightAttribute.js
Created Oct 22, 2011
MaximumWeightAttribute custom attribute jQuery unobtrusive client side validation implementation
View MaximumWeightAttribute.js
<script type="text/javascript">
$.validator.addMethod("maximumweight",
function (value, element, parameters) {
var carrier = $("#" + parameters["dependentproperty"]).val();
var carriervalue = parameters["dependentvalue"].toString();
var weightvalue = Number(parameters["weightvalue"]);
if (carrier == carriervalue && value > weightvalue) {
return false;
}
return true;
@timhobbs
timhobbs / AjaxRedirect.cs
Created Oct 25, 2011
AjaxRedirectResult and AjaxRequestExtension
View AjaxRedirect.cs
using System;
using System.Web;
using System.Web.Mvc;
/// <summary>
/// See http://stackoverflow.com/questions/1171035/asp-net-mvc-custom-error-handling-application-error-global-asax/5952774#5952774
/// for implementation details
/// </summary>
public class AjaxRedirectResult : RedirectResult {
@timhobbs
timhobbs / jquery.text3d.js
Created Nov 15, 2011
jQuery 3d text plug-in
View jquery.text3d.js
/**
* 3D Text plugin for jQuery
* v1.0
* Creates 3D text using CSS3 text-shadows
*
* By Craig Buckler, @craigbuckler, http://optimalworks.net
*
* As featured on SitePoint.com:
* http://www.sitepoint.com/css3-3d-text-jquery-plugin/
*
@timhobbs
timhobbs / Adapter.js
Created Oct 16, 2012 — forked from michaeljacobdavis/Adapter.js
NotEqual Fluent Validation validator with client side validation
View Adapter.js
(function ($) {
$.validator.addMethod("notequal", function (value, element, param) {
if (param.indexOf("#") == -1) return value != param;
return value != $(param).val();
}, $.validator.messages.notequal);
$.validator.unobtrusive.adapters.add("notequal", ["field"], function (options) {
options.rules["notequal"] = options.params.field;
if (options.message) options.messages["notequal"] = options.message;
});
@timhobbs
timhobbs / em.js
Created Nov 15, 2012
jQuery "remote" validation
View em.js
window.Em = window.Em || {};
Em = {
setFocusOutValidation: function (form) {
var s = $.data(form, "validator").settings;
s.onfocusout = function (element) {
if ($(element).val().length > 0) {
$(element).valid();
}
};
@timhobbs
timhobbs / FilterExtension.cs
Created Nov 16, 2012
An extension method for Telerik MVC grid filtering
View FilterExtension.cs
///<remarks>
/// Turns out this wasn't needed - and far less elegant than the existing extension method.
/// However, it is still an example of a generic way to match a given property with a value
/// and how to select that property by name (string) and compare its value to the value
/// that is passed in. It works...
///</remarks>
public static IList<T> ApplyFilter<T>(this IList<T> list, FilterDescriptor filter) {
// We wont allow filtering on anything but string type properties
if (filter.MemberType != typeof(string)) throw new ArgumentException("Filtering is only allowed for properties with a type of 'string'.");
@timhobbs
timhobbs / toggle-data.js
Created Nov 21, 2012
Select data- attribute on an input
View toggle-data.js
var d = $("input[data-toggle-class]");
$.each(d, function (idx, data) {
console.log(idx, data);
});
@timhobbs
timhobbs / Trolliminator! Bookmarklet.js
Last active Dec 15, 2015
Trolliminator! eliminates troll posts from Gigya comments. Simply add a comma-separated list of troll usernames to the trolls variable at the top, then save this js snippet as a bookmark. Whenever you want to trolliminate posts, just click the bookmark! All troll posts will be marked with a "Trolliminated!" string and a total count will be displ…
View Trolliminator! Bookmarklet.js
javascript: (function () {
var trolls = [
'troll', // <-- add troll names here
];
var el = document.createElement('div'),
b = document.getElementsByTagName('body')[0];
otherlib = false, msg = '';
el.style.position = 'fixed';
el.style.height = '32px';
You can’t perform that action at this time.