Bryan Casler

VP of Digital Strategy at 4Site Studios

Having gotten his start organizing with anti-war veterans and working as Sala Labs, Sales Engineer and Partner Manager, Bryan now brings his expertise to non-profit and mission-driven clients as 4Site Studios Director of Digital Strategy. Specializing in challenging and complex projects, Bryan works with each client to craft holistic approaches tailored to goals, budget, and outcomes.

Bryan Casler 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