Permalink
Browse files

added cookie parsing to routes.js and updated logic to support forced…

… mobile page viewing in desktop browsers
  • Loading branch information...
1 parent 2d202ae commit e6878bab2f6786d06a0b9859f72ea7993b25ab49 @mokolabs committed Feb 21, 2012
Showing with 45 additions and 4 deletions.
  1. +3 −2 public/javascripts/logic.js
  2. +41 −1 public/javascripts/{purl.js → plugins.js}
  3. +1 −1 routy.rb
View
5 public/javascripts/logic.js
@@ -1,7 +1,7 @@
// MOBILE DETECTION
-if (jQuery.cookie('mobile2') == 'true') {
+if (Get_Cookie('mobile2') == 'true' || location.href.match(/mobile=force/i) == 'mobile=force') {
function redirect_to_mobile(redirect) {
window.location.href = "/mobile2" + redirect;
@@ -10,7 +10,8 @@ if (jQuery.cookie('mobile2') == 'true') {
// Check for supported mobile browsers
if (navigator.userAgent.match(/Android/i) ||
navigator.userAgent.match(/iPhone/i) ||
- navigator.userAgent.match(/iPod/i)) {
+ navigator.userAgent.match(/iPod/i) ||
+ location.href.match(/mobile=force/i) == 'mobile=force') {
// External links (with target=_blank)
if (location.href.match(/mobile=skip/i)) {
View
42 public/javascripts/purl.js → public/javascripts/plugins.js
@@ -1,4 +1,4 @@
-// JQUERY URL PARSER PLUGIN
+// PLUGINS
// jQuery URL Parser plugin (No jQuery version!) - https://github.com/allmarkedup/jQuery-URL-Parser/tree/no-jquery
// Written by Mark Perkins, mark@allmarkedup.com
@@ -147,3 +147,43 @@ var purl = (function(undefined) {
})();
+function Get_Cookie( check_name ) {
+ // first we'll split this cookie up into name/value pairs
+ // note: document.cookie only returns name=value, not the other components
+ var a_all_cookies = document.cookie.split( ';' );
+ var a_temp_cookie = '';
+ var cookie_name = '';
+ var cookie_value = '';
+ var b_cookie_found = false; // set boolean t/f default f
+
+ for ( i = 0; i < a_all_cookies.length; i++ )
+ {
+ // now we'll split apart each name=value pair
+ a_temp_cookie = a_all_cookies[i].split( '=' );
+
+
+ // and trim left/right whitespace while we're at it
+ cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
+
+ // if the extracted name matches passed check_name
+ if ( cookie_name == check_name )
+ {
+ b_cookie_found = true;
+ // we need to handle case where cookie has no value but exists (no = sign, that is):
+ if ( a_temp_cookie.length > 1 )
+ {
+ cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
+ }
+ // note that in cases where cookie is initialized but no value, null is returned
+ return cookie_value;
+ break;
+ }
+ a_temp_cookie = null;
+ cookie_name = '';
+ }
+ if ( !b_cookie_found )
+ {
+ return null;
+ }
+}
+
View
2 routy.rb
@@ -80,7 +80,7 @@ class Route < ActiveRecord::Base
content_type :js
attachment('routes.js')
response.write(
- File.read(File.join('public', 'javascripts', 'purl.js')) +
+ File.read(File.join('public', 'javascripts', 'plugins.js')) +
'var map = {"routes":' + Route.all.to_json + '};' +
File.read(File.join('public', 'javascripts', 'logic.js'))
)

0 comments on commit e6878ba

Please sign in to comment.