Skip to content

Instantly share code, notes, and snippets.

View martinnormark's full-sized avatar
:shipit:
Always Be Shipping

Martin Høst Normark martinnormark

:shipit:
Always Be Shipping
View GitHub Profile
@martinnormark
martinnormark / ModalView.js
Created January 6, 2013 10:29
Backbone implementation of the Twitter Bootstrap Modal view
(function () {
App.Views.ModalView = Backbone.View.extend({
tagName: "div",
template: modalTemplate,
initialize: function (options) {
_.bindAll(this, "render", "show", "hide", "toggle", "setContent");
@martinnormark
martinnormark / PopoverView.js
Last active November 29, 2016 10:58
Backbone implementation of the Twitter Bootstrap Popover view
(function () {
App.Views.PopoverView = Backbone.View.extend({
initialize: function (options) {
_.bindAll(this, "render", "setContent", "show", "hide", "toggle", "destroy", "remove");
this.offsetTop = 30;
this.offsetLeft = 0;
@martinnormark
martinnormark / WebRole.cs
Created January 11, 2013 08:22
Handle Azure Web Role restarts gracefully, by waiting for current requests to complete.
public override void OnStop()
{
Trace.TraceInformation("OnStop called from WebRole");
var rcCounter = new PerformanceCounter("ASP.NET", "Requests Current", "");
while (rcCounter.NextValue() > 0)
{
Trace.TraceInformation("ASP.NET Requests Current = " + rcCounter.NextValue().ToString());
System.Threading.Thread.Sleep(1000);
}
@martinnormark
martinnormark / jquery.validate.unobtrusive.dynamic.js
Created January 11, 2013 22:41
Dynamically parse new validation rules on DOM elements
(function ($) {
$.validator.unobtrusive.parseDynamic = function (selector) {
//use the normal unobstrusive.parse method
$.validator.unobtrusive.parse(selector);
//get the relevant form
var form = $(selector).first().closest('form');
if (!form.length) {
form = $(selector).first().find('form');
@martinnormark
martinnormark / manually-validate.js
Created January 11, 2013 22:44
Programatically call jQuery validate
validate: function () {
var form = this.$el.is("form") ? this.$el : this.$el.closest("form");
if (!form.is("form")) {
form = this.$el.find("form");
}
return form.data().unobtrusiveValidation.validate();
}
@martinnormark
martinnormark / EmailAddressAttribute.cs
Created January 12, 2013 20:42
Email Address validation for ASP.NET MVC
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
using System.Web.Mvc;
namespace MyApp.Web.PresentationLogic.Validation
{
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public sealed class EmailAddressAttribute : DataTypeAttribute, IClientValidatable
@martinnormark
martinnormark / UrlHelperExtensions.cs
Last active December 21, 2020 11:18
Adding build number to static file paths for cache busting in ASP.NET MVC
public static class UrlHelperExtensions
{
private static int _revisionNumber;
public static string ContentVersioned(this UrlHelper urlHelper, string contentPath)
{
string url = urlHelper.Content(contentPath);
int revisionNumber = GetRevisionNumber();
return String.Format("{0}?v={1}", url, revisionNumber);
@martinnormark
martinnormark / countersunk-table-rows.css
Created January 15, 2013 10:31
CSS for rendering table rows, as if they were countersunk in relation to the rows above and below
tr.countersink.top td {
-webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
-moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
}
tr.countersink td {
background-color: #F7F7F7;
-webkit-box-shadow: inset 0 0px 5px rgba(0, 0, 0, 0.125);
-moz-box-shadow: inset 0 0px 5px rgba(0, 0, 0, 0.125);
@martinnormark
martinnormark / HandleAjaxErrorAttribute.cs
Created January 23, 2013 09:17
Log handled exception in AJAX request to ELMAH
using System.Net;
using System.Web.Mvc;
namespace MyApp.Web.PresentationLogic.ActionFilters
{
public class HandleAjaxErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (!filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
@martinnormark
martinnormark / ios-log-output.log
Last active December 11, 2015 19:18
Sample iOS logging output
2013-01-27 10:11:26.113 iOS-logging-experiments[24010:c07] -[BPViewController logContextButtonPressed:]:31 someObject=(
)
2013-01-27 10:11:26.115 iOS-logging-experiments[24010:c07] -[BPViewController logContextButtonPressed:]:34 someObject=(
foo
)
2013-01-27 10:11:26.116 iOS-logging-experiments[24010:c07] -[BPViewController logContextButtonPressed:]:36 someObject=(
foo
)
2013-01-27 10:11:26.138 iOS-logging-experiments[24010:c07] (
0 iOS-logging-experiments 0x000021ee -[BPViewController logContextButtonPressed:] + 302