Skip to content

Instantly share code, notes, and snippets.

Avatar

Tim Hobbs timhobbs

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.