Michael Johnston

Founder and President, hjc

Michael Johnston is a 30+ year integrated fundraiser with a love for innovation, change management and fundraising success. He has worked with hundreds of organizations in Canada, the U.S., Europe, Latin America and the Asia Pacific. Mike was an instrumental, founding board member of the Washington-based ePhilanthropy Foundation, and was its first Education Committee chair. He was the founding Board Chairman of Globelot, the first Internet lottery created in partnership with CARE International, Human Rights Watch, World Wildlife Fund, and the International Federation of Red Cross.

Michael Johnston Events

No Events

Maximum upload file size: 50 MB.

<# if ( data.suggestedWidth && data.suggestedHeight ) { #>

Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels.

<# } #> <# } else if ( data.sizes && data.sizes.large ) { #> <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #> <# } #> <# if ( 'audio' === data.type ) { #>
<# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #>
<# } #>
<# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #> <# } else if ( 'pdf' === data.subtype && data.sizes ) { #>

Document Preview

<# } #>
Saved.

Details

Uploaded on: {{ data.dateFormatted }}
Uploaded by: <# if ( data.authorLink ) { #> {{ data.authorName }} <# } else { #> {{ data.authorName }} <# } #>
<# if ( data.uploadedToTitle ) { #>
Uploaded to: <# if ( data.uploadedToLink ) { #> {{ data.uploadedToTitle }} <# } else { #> {{ data.uploadedToTitle }} <# } #>
<# } #>
File name: {{ data.filename }}
File type: {{ data.mime }}
File size: {{ data.filesizeHumanReadable }}
<# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #>
Dimensions: {{ data.width }} by {{ data.height }} pixels
<# } #> <# if ( data.originalImageURL && data.originalImageName ) { #>
Original image: {{data.originalImageName}}
<# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
Length: {{ data.fileLengthHumanReadable }}
<# } #> <# if ( 'audio' === data.type && data.meta.bitrate ) { #>
Bitrate: {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s <# if ( data.meta.bitrate_mode ) { #> {{ ' ' + data.meta.bitrate_mode.toUpperCase() }} <# } #>
<# } #> <# if ( data.mediaStates ) { #>
Used as: {{ data.mediaStates }}
<# } #>
<# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #>
<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #>

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

<# } #> <# if ( 'audio' === data.type ) { #> <# } #> <# if ( 'image' === data.type ) { #> <# } else { #> <# } #>
<# if ( data.link ) { #> View attachment page <# } #> <# if ( data.can.save ) { #> <# if ( data.link ) { #> | <# } #> Edit more details <# } #> <# if ( data.can.save && data.link ) { #> | Download file <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# if ( data.link || data.can.save ) { #> | <# } #> <# } #>
<# } else { #>
<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #> <# } else if ( data.sizes ) { if ( data.sizes.medium ) { #> <# } else { #> <# } #> <# } else { #> <# } #>
{{ data.filename }}
<# } #> <# if ( data.buttons.close ) { #> <# } #> <# if ( data.buttons.check ) { #> <# } #> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; if ( data.describe ) { if ( 'image' === data.type ) { #> <# } else { #> aria-label="Video title" placeholder="Video title…" <# } else if ( 'audio' === data.type ) { #> aria-label="Audio title" placeholder="Audio title…" <# } else { #> aria-label="Media title" placeholder="Media title…" <# } #> {{ maybeReadOnly }} /> <# } } #> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #>
<# } else { #>
<# if ( data.uploading ) { #>
<# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <# } else { #> <# } #>
<# } #>
{{ data.filename }}
{{ data.dateFormatted }}
{{ data.filesizeHumanReadable }}
<# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #>
{{ data.width }} by {{ data.height }} pixels
<# } #> <# if ( data.originalImageURL && data.originalImageName ) { #>
Original image: {{data.originalImageName}}
<# } #> <# if ( data.can.save && data.sizes ) { #> Edit Image <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #>
Length: {{ data.fileLengthHumanReadable }}
<# } #> <# if ( data.mediaStates ) { #>
Used as: {{ data.mediaStates }}
<# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# } #>
<# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #>
<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #>

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

<# } #> <# if ( 'audio' === data.type ) { #> <# } #> <# if ( 'image' === data.type ) { #> <# } else { #> <# } #>
<# if ( 'undefined' !== typeof data.sizes ) { #> <# } #> <# if ( ! isVideo ) { #> checked="checked" <# } #> /> <# } #> checked="checked" <# } #> />

Learn how to describe the purpose of the image (opens in a new tab). Leave empty if the image is purely decorative.

Align
Link To

Image size in pixels

<# } #>

<# if ( data.attachment && window.imageEdit ) { #>
<# } #>
<# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { #> <# } #> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { if ( ! _.isUndefined( html5types.mp3 ) ) { delete html5types.mp3; } #> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { if ( ! _.isUndefined( html5types.ogg ) ) { delete html5types.ogg; } #> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { if ( ! _.isUndefined( html5types.flac ) ) { delete html5types.flac; } #> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { if ( ! _.isUndefined( html5types.m4a ) ) { delete html5types.m4a; } #> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { if ( ! _.isUndefined( html5types.wav ) ) { delete html5types.wav; } #> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #>
Add alternate sources for maximum HTML5 playback <# _.each( html5types, function (mime, type) { #> <# } ) #>
<# } #>
Preload
<# } else if ( isVimeo ) { #> <# } else { #> <# } } #> <# if ( data.model.mp4 ) { #> <# } #> <# if ( data.model.m4v ) { #> <# } #> <# if ( data.model.webm ) { #> <# } #> <# if ( data.model.ogv ) { #> <# } #> <# if ( data.model.flv ) { #> <# } #> {{{ data.model.content }}} <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <# } #> <# if ( ! _.isEmpty( data.model.mp4 ) ) { if ( ! _.isUndefined( html5types.mp4 ) ) { delete html5types.mp4; } #> <# } #> <# if ( ! _.isEmpty( data.model.m4v ) ) { if ( ! _.isUndefined( html5types.m4v ) ) { delete html5types.m4v; } #> <# } #> <# if ( ! _.isEmpty( data.model.webm ) ) { if ( ! _.isUndefined( html5types.webm ) ) { delete html5types.webm; } #> <# } #> <# if ( ! _.isEmpty( data.model.ogv ) ) { if ( ! _.isUndefined( html5types.ogv ) ) { delete html5types.ogv; } #> <# } #> <# if ( ! _.isEmpty( data.model.flv ) ) { if ( ! _.isUndefined( html5types.flv ) ) { delete html5types.flv; } #> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #>
Add alternate sources for maximum HTML5 playback <# _.each( html5types, function (mime, type) { #> <# } ) #>
<# } #> <# if ( ! _.isEmpty( data.model.poster ) ) { #> <# } #>
Preload
<# var content = ''; if ( ! _.isEmpty( data.model.content ) ) { var tracks = jQuery( data.model.content ).filter( 'track' ); _.each( tracks.toArray(), function( track, index ) { content += track.outerHTML; #> The srclang, label, and kind values can be edited to set the video track language and kind.
<# } ); #> <# } else { #> Tracks (subtitles, captions, descriptions, chapters, or metadata)
There are no associated subtitles. <# } #>
<# } else { #> {{ attachment.alt }} <# } #> <# if ( attachment.caption ) { #> <# } #> <# if ( index % data.columns === data.columns - 1 ) { #>
<# } #> <# } ); #> <# } else { #>

No items found.

<# } #>
Preview as a browser icon