diff --git a/web/app/assets/stylesheets/client/hoverBubble.css.scss b/web/app/assets/stylesheets/client/hoverBubble.css.scss
index 61eff474b..5016310ac 100644
--- a/web/app/assets/stylesheets/client/hoverBubble.css.scss
+++ b/web/app/assets/stylesheets/client/hoverBubble.css.scss
@@ -1,76 +1,77 @@
.bubble {
- width:350px;
- min-height:200px;
- background-color:#242323;
- border:solid 1px #ed3618;
- position:absolute;
- z-index:999;
-}
+ width:350px;
+ min-height:200px;
+ background-color:#242323;
+ border:solid 1px #ed3618;
+ position:absolute;
+ z-index:999;
-.bubble.musician-bubble {
- width:410px;
-}
-.bubble h2 {
- padding:6px 0px;
- text-align:center;
- font-size:15px;
- font-weight:200;
- width:100%;
- background-color:#ed3618;
-}
+ &.musician-bubble {
+ width:410px;
+ }
-.bubble h3 {
- font-weight:400;
- font-size:16px;
- color:#fff;
-}
-
-.bubble-inner {
- padding:10px;
- color:#ccc;
-}
-
-.bubble-inner div.mb {
- margin-bottom:5px;
-}
-
-strong {
- font-weight:600 !important;
-}
-
-.musicians {
- margin-top:-3px;
- font-size:11px;
-}
-
-.musicians td {
- border-right:none;
- border-top:none;
- padding:3px;
- vertical-align:middle;
-}
-
-.musicians a {
- color:#fff;
- text-decoration:none;
-}
-
-.avatar-tiny {
- float:left;
- padding:1px;
- width:24px;
- height:24px;
+ h2 {
+ padding:6px 0px;
+ text-align:center;
+ font-size:15px;
+ font-weight:200;
+ width:100%;
background-color:#ed3618;
- -webkit-border-radius:12px;
- -moz-border-radius:12px;
- border-radius:12px;
-}
+ }
-.avatar-tiny img {
- width: 24px;
- height: 24px;
- -webkit-border-radius:12px;
- -moz-border-radius:12px;
- border-radius:12px;
+ h3 {
+ font-weight:400;
+ font-size:16px;
+ color:#fff;
+ }
+
+ .bubble-inner {
+ padding:10px;
+ color:#ccc;
+ }
+
+ .bubble-inner div.mb {
+ margin-bottom:5px;
+ }
+
+ strong {
+ font-weight:600 !important;
+ }
+
+ .musicians {
+ margin-top:-3px;
+ font-size:11px;
+ }
+
+ .musicians td {
+ border-right:none;
+ border-top:none;
+ padding:3px;
+ vertical-align:middle;
+ }
+
+ .musicians a {
+ color:#fff;
+ text-decoration:none;
+ }
+
+ .avatar-tiny {
+ float:left;
+ padding:1px;
+ width:24px;
+ height:24px;
+ background-color:#ed3618;
+ -webkit-border-radius:12px;
+ -moz-border-radius:12px;
+ border-radius:12px;
+ }
+
+ .avatar-tiny img {
+ width: 24px;
+ height: 24px;
+ -webkit-border-radius:12px;
+ -moz-border-radius:12px;
+ border-radius:12px;
+ }
}
\ No newline at end of file
diff --git a/web/app/views/spikes/launch_app.html.haml b/web/app/views/spikes/launch_app.html.haml
index 00fee5fd6..898fe21cb 100644
--- a/web/app/views/spikes/launch_app.html.haml
+++ b/web/app/views/spikes/launch_app.html.haml
@@ -4,10 +4,96 @@
.content-wrapper
%h2 Launch App Test
+ %a#try{href:'mumble:abc'} Click Here For Mumble
+
+ %br
+
+ %a#try_bad{href:'bumble:abc'} Click Here For Bumble
+
+ #result Result will show here
+
:javascript
$(function () {
+ console.log("USER AGENT: ", window.navigator.userAgent);
+ function launchCustomProtocol(elem, url, callback) {
+ var iframe, myWindow, success = false;
+ if ($.browser.msie) {
+ myWindow = window.open('', '', 'width=0,height=0');
+ myWindow.document.write("");
- })()
\ No newline at end of file
+ setTimeout(function () {
+ try {
+ myWindow.location.href;
+ success = true;
+ } catch (ex) {
+ console.log(ex);
+ }
+
+ if (success) {
+ myWindow.setTimeout('window.close()', 100);
+ } else {
+ myWindow.close();
+ }
+
+ callback(success);
+ }, 100);
+ } else if ($.browser.mozilla) {
+ try {
+ iframe = $("");
+ iframe.css({"display": "none"});
+ iframe.appendTo("body");
+ iframe[0].contentWindow.location.href = url;
+ success = true;
+ } catch (ex) {
+ success = false;
+ }
+
+ iframe.remove();
+
+ callback(success);
+ } else if ($.browser.chrome) {
+ alert("CHROME")
+ elem.css({"outline": 0});
+ elem.attr("tabindex", "1");
+ elem.focus();
+
+ elem.blur(function () {
+ success = true;
+ callback(true); // true
+ });
+
+ location.href = url;
+
+ setTimeout(function () {
+ elem.off('blur');
+ elem.removeAttr("tabindex");
+
+ if (!success) {
+ callback(false); // false
+ }
+ }, 1000);
+ } else if ($.browser.safari) {
+ if (myappinstalledflag) {
+ location.href = url;
+ success = true;
+ } else {
+ success = false;
+ }
+
+ callback(success);
+ }
+ }
+
+ $('#try').click(function(e) {
+ launchCustomProtocol($(this), $(this).attr('href'), function(success) {$('#result').text('success=' + success)})
+ return false;
+ });
+
+ $('#try_bad').click(function(e) {
+ launchCustomProtocol($(this), $(this).attr('href'), function(success) {$('#result').text('success=' + success)})
+ return false;
+ })
+ })
\ No newline at end of file
diff --git a/web/vendor/assets/javascripts/jquery.browser.js b/web/vendor/assets/javascripts/jquery.browser.js
index c7742a78e..fdf337586 100644
--- a/web/vendor/assets/javascripts/jquery.browser.js
+++ b/web/vendor/assets/javascripts/jquery.browser.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin v0.0.5
+ * jQuery Browser Plugin v0.0.6
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
@@ -23,7 +23,7 @@
var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
@@ -34,16 +34,17 @@
var platform_match = /(ipad)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
/(android)/.exec( ua ) ||
- /(windows phone)/.exec(ua) ||
+ /(windows phone)/.exec( ua ) ||
/(win)/.exec( ua ) ||
/(mac)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
[];
return {
browser: match[ 3 ] || match[ 1 ] || "",
version: match[ 2 ] || "0",
- platform: platform_match[0] || ""
+ platform: platform_match[ 0 ] || ""
};
};
@@ -60,53 +61,52 @@
browser[ matched.platform ] = true;
}
-// These are all considered mobile platforms, meaning they run a mobile browser
+ // These are all considered mobile platforms, meaning they run a mobile browser
if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
browser.mobile = true;
}
-// These are all considered desktop platforms, meaning they run a desktop browser
- if ( browser.mac || browser.linux || browser.win ) {
+ // These are all considered desktop platforms, meaning they run a desktop browser
+ if ( browser.cros || browser.mac || browser.linux || browser.win ) {
browser.desktop = true;
}
-// Chrome, Opera 15+ and Safari are webkit based browsers
+ // Chrome, Opera 15+ and Safari are webkit based browsers
if ( browser.chrome || browser.opr || browser.safari ) {
browser.webkit = true;
}
-// IE11 has a new token so we will assign it msie to avoid breaking changes
+ // IE11 has a new token so we will assign it msie to avoid breaking changes
if ( browser.rv )
{
- var ie = 'msie';
+ var ie = "msie";
matched.browser = ie;
browser[ie] = true;
}
-// Opera 15+ are identified as opr
+ // Opera 15+ are identified as opr
if ( browser.opr )
{
- var opera = 'opera';
+ var opera = "opera";
matched.browser = opera;
browser[opera] = true;
}
-// Stock Android browsers are marked as safari on Android.
+ // Stock Android browsers are marked as Safari on Android.
if ( browser.safari && browser.android )
{
- var android = 'android';
+ var android = "android";
matched.browser = android;
browser[android] = true;
}
-// Assign the name and platform variable
+ // Assign the name and platform variable
browser.name = matched.browser;
browser.platform = matched.platform;
jQuery.browser = browser;
-
})( jQuery, window );
\ No newline at end of file