Dealing with :hover on Mobile in CSS Only

Dealing with a double touch :hover button is a pain for the mobile user. But :hover looks and works really well with mouse-pointer desktop environments. So how do we have both? Especially in the age of the hybrid touch desktop. I can’t believe I didn’t try this trick before.

Continue reading “Dealing with :hover on Mobile in CSS Only”

Better Pagination Styles With Farcry and Foundation

Let’s face it, pagination is tough. Especially with the need to be flexible across varying display sizes. But today, I’m going to show you how I do it, which I think is pretty great and I think you, and your users, will too.

Continue reading “Better Pagination Styles With Farcry and Foundation”

Upgraded My Foundation Grid Balancer Plugin

Finally got around to upgrading my Foundation Grid Balancer plugin. For those who don’t know, I’m a “Yetinaut“. The definition of a Yetinaut is.

In addition to the ZURB team, a select group of awesome contributors have been dubbed Yetinauts. These talented dev and designers from around the world have direct write access to the codebase and support the core Foundation team on the development of the framework.

This is great because my company runs pretty much exclusively on the Foundation Framework so I get the chance to give back, but also improve on the thing I use most. Which makes for a great reciprocal relationship. Use, improve, use, improve. And so on.

Continue reading “Upgraded My Foundation Grid Balancer Plugin”

FarCry Friendly URLs and “Dumping Methods”

I don’t know why this was so hard for me to figure out, but the dev’s before me would write queries to get the friendly URL of a page generated in FarCry. I kept saying to myself, this can’t be right, but I couldn’t figure out the way until I discovered that CF will dump out all the methods tied to a FC type.

<cfset o = application.fapi.getContentType("farFU")>
<cfdump var="#o#">

This will give you all the methods you can access and sure enough there was a GETFU method, all you need to do is pass in the object id.

<cfset fu= application.fapi.getContentType("farFU").GETFU(stobj.objectid)>

The only odd thing, is dmHTML pages, if you typically name your dmNavigation parent the same as the dmHTML page inside the folder you will get a return of something like this.

/privacy-policy/privacy-policy

So just a heads up if you build your links.

UPDATE:

The API, has a method, thanks for pointing out @fullasagoog

<cfset friendlyURL = application.fapi.getLink(objectid=stObj.objectid)>

Boom!

FarCry CMS Rules: Populating Library Data

This blog post aims to cover 2 methods of pre-filtering the pop-up library initially for your content team to easily navigate content object entries when applying rules when using FarCry CMS.

These methods are great for large sites that have a lot of content. Both do a great job at filtering down the bulk of entries a content person may have to navigate when selecting content entry items.

Both methods are built into FarCry and require a small amount of work but will really make your site that much better to use on the CMS side of things.

Continue reading “FarCry CMS Rules: Populating Library Data”

Natural Width and Height of Images

I stumbled upon a javascript readonly property that will return to you the original width and or height of an image loaded in the browser display.

Say for example you have an image that is 200px by 200px, and you style the image in CSS to be 100px by 100px. If you use jQuery’s width()  or height() method, the return will be the current height or width. IE. 100px by 100px.

This makes perfect sense but…

Continue reading “Natural Width and Height of Images”

Submit Image’s and Forms via jQuery Asynchronously

One of the many requests that come across my desk is, can we submit images of users, or logos, or whatever. Sure! a simple HTTP Post request takes care of the job, but what if we need a little more, or it is required. Submitting images and jQuery’s Ajax form submission doesn’t work so well.

Why? jQuery runs anything that isn’t a string through jQuery.param() to serialize the objects keys into key1=a&key2=b etc. And since an image or for that matter, any file, is not at string, we can’t accomplish it this way.

A quick google search will return numerous results for libraries, or convoluted methods for posting images and files, not a lot will work, and will leave you frustrated. Here we will solve the issue, but also give a little background as to how it works. It’s really quite simple.

HTML5  FormData for the win!

Continue reading “Submit Image’s and Forms via jQuery Asynchronously”

Setting the timezone on your Heroku App

So after the long hours of building my scheduling bot for Slack, I’m ready to deploy on Heroku, which is an awesome service by the way, but something is wrong, the times are all off.

Turns out my Heroku app was 4 hours off, more specifically my Heroku server running my app was 4 hours off.

Luckily this is an easy fix through the command line. Just set the time zone to a TZ database timezone, you can find them all here.

heroku config:add TZ="America/New_York" --app yourappname

Google Scripts Spreadsheet Duplication

The Problem.

So when working with a client a need arose to have an online application require a unique set of fields to fill out around a proposed budget based off an Excel Spreadsheet. Without getting too much into the weeds with the details it would have been a nightmare to try to “re-create” the spreadsheet with HTML form fields and javascript, especially with the typical “can we get it next week” client requests every dev-head is subjected to.

I suggested we use Google spreadsheets as the delivery vehicle. It made sense. It’s a spreadsheet everyone is familiar with, the only requirement would be the browser the user is already in, and the formatting is similar to what the end goals of the client requested.

All we needed to do was to create 1 Google spreadsheet and associate the unique URL’s with the 400 some odd users. Simple right! And a great solution to a difficult problem.

However… The client loved it too much…

Continue reading “Google Scripts Spreadsheet Duplication”