diff --git a/frappe/core/page/desktop/desktop.js b/frappe/core/page/desktop/desktop.js
index d18f7dd55c..c251e5b4d5 100644
--- a/frappe/core/page/desktop/desktop.js
+++ b/frappe/core/page/desktop/desktop.js
@@ -149,34 +149,29 @@ $.extend(frappe.desktop, {
// This hack is so bad, I should punch myself.
// Seriously, punch yourself.
const text = $(object).find('.circle-text').html();
-
+
return text;
}));
-
+
const clearWiggle = () => {
const $closes = $cases.find('.module-remove');
$closes.hide();
$notis.show();
- $icons.trigger('stopRumble');
+ $icons.removeClass('wiggle');
frappe.desktop.wiggling = false;
};
- // initiate wiggling.
- $icons.jrumble({
- speed: WIGGLE_ANTIDODE // seems neat enough to match the iOS way
- });
-
frappe.desktop.wrapper.on('mousedown', '.app-icon', () => {
timer_id = setTimeout(() => {
frappe.desktop.wiggling = true;
// hide all notifications.
$notis.hide();
-
+
$cases.each((i) => {
const $case = $($cases[i]);
- const template =
+ const template =
`
@@ -200,7 +195,7 @@ $.extend(frappe.desktop, {
method: 'frappe.desk.doctype.desktop_icon.desktop_icon.hide',
args: { name: name },
freeze: true,
- callback: (response) =>
+ callback: (response) =>
{
if ( response.message ) {
location.reload();
@@ -209,7 +204,7 @@ $.extend(frappe.desktop, {
})
dialog.hide();
-
+
clearWiggle();
});
// Hacks, Hacks and Hacks.
@@ -222,8 +217,9 @@ $.extend(frappe.desktop, {
dialog.show();
});
});
-
- $icons.trigger('startRumble');
+
+ $icons.addClass('wiggle');
+
}, DURATION_LONG_PRESS);
});
frappe.desktop.wrapper.on('mouseup mouseleave', '.app-icon', () => {
diff --git a/frappe/public/css/desktop.css b/frappe/public/css/desktop.css
index 8b918ca8fe..4d91482772 100644
--- a/frappe/public/css/desktop.css
+++ b/frappe/public/css/desktop.css
@@ -62,6 +62,44 @@ body[data-route="desktop"] .navbar-default {
transition: 0.2s;
-webkit-transition: 0.2s;
}
+@-webkit-keyframes wiggle {
+ 0% {
+ -webkit-transform: rotate(3deg);
+ }
+ 50% {
+ -webkit-transform: rotate(-3deg);
+ }
+ 100% {
+ -webkit-transform: rotate(3deg);
+ }
+}
+@-moz-keyframes wiggle {
+ 0% {
+ -moz-transform: rotate(3deg);
+ }
+ 50% {
+ -moz-transform: rotate(-3deg);
+ }
+ 100% {
+ -moz-transform: rotate(3deg);
+ }
+}
+@keyframes wiggle {
+ 0% {
+ transform: rotate(3deg);
+ }
+ 50% {
+ transform: rotate(-3deg);
+ }
+ 100% {
+ transform: rotate(3deg);
+ }
+}
+.wiggle {
+ -webkit-animation: wiggle 0.2s linear infinite;
+ -moz-animation: wiggle 0.2s linear infinite;
+ animation: wiggle 0.2s linear infinite;
+}
.circle {
position: absolute;
right: 20px;
diff --git a/frappe/public/js/lib/jquery.jrumble.min.js b/frappe/public/js/lib/jquery.jrumble.min.js
deleted file mode 100644
index 71de6ffb7c..0000000000
--- a/frappe/public/js/lib/jquery.jrumble.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* jRumble v1.3 - http://jackrugile.com/jrumble - MIT License */
-(function(f){f.fn.jrumble=function(g){var a=f.extend({x:2,y:2,rotation:1,speed:15,opacity:false,opacityMin:0.5},g);return this.each(function(){var b=f(this),h=a.x*2,i=a.y*2,k=a.rotation*2,g=a.speed===0?1:a.speed,m=a.opacity,n=a.opacityMin,l,j,o=function(){var e=Math.floor(Math.random()*(h+1))-h/2,a=Math.floor(Math.random()*(i+1))-i/2,c=Math.floor(Math.random()*(k+1))-k/2,d=m?Math.random()+n:1,e=e===0&&h!==0?Math.random()<0.5?1:-1:e,a=a===0&&i!==0?Math.random()<0.5?1:-1:a;b.css("display")==="inline"&&(l=true,b.css("display","inline-block"));b.css({position:"relative",left:e+"px",top:a+"px","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity="+d*100+")",filter:"alpha(opacity="+d*100+")","-moz-opacity":d,"-khtml-opacity":d,opacity:d,"-webkit-transform":"rotate("+c+"deg)","-moz-transform":"rotate("+c+"deg)","-ms-transform":"rotate("+c+"deg)","-o-transform":"rotate("+c+"deg)",transform:"rotate("+c+"deg)"})},p={left:0,top:0,"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)",filter:"alpha(opacity=100)","-moz-opacity":1,"-khtml-opacity":1,opacity:1,"-webkit-transform":"rotate(0deg)","-moz-transform":"rotate(0deg)","-ms-transform":"rotate(0deg)","-o-transform":"rotate(0deg)",transform:"rotate(0deg)"};b.bind({startRumble:function(a){a.stopPropagation();clearInterval(j);j=setInterval(o,g)},stopRumble:function(a){a.stopPropagation();clearInterval(j);l&&b.css("display","inline");b.css(p)}})})}})(jQuery);
\ No newline at end of file
diff --git a/frappe/public/less/desktop.less b/frappe/public/less/desktop.less
index 55bc98a4dd..d5a0710ea2 100644
--- a/frappe/public/less/desktop.less
+++ b/frappe/public/less/desktop.less
@@ -75,6 +75,30 @@ body[data-route=""] .navbar-default, body[data-route="desktop"] .navbar-default
-webkit-transition: 0.2s;
}
+@-webkit-keyframes wiggle {
+ 0% {-webkit-transform:rotate(3deg);}
+ 50% {-webkit-transform:rotate(-3deg);}
+ 100% {-webkit-transform:rotate(3deg);}
+}
+
+@-moz-keyframes wiggle {
+ 0% {-moz-transform:rotate(3deg);}
+ 50% {-moz-transform:rotate(-3deg);}
+ 100% {-moz-transform:rotate(3deg);}
+}
+
+@keyframes wiggle {
+ 0% {transform:rotate(3deg);}
+ 50% {transform:rotate(-3deg);}
+ 100% {transform:rotate(3deg);}
+}
+
+.wiggle {
+ -webkit-animation: wiggle 0.2s linear infinite;
+ -moz-animation: wiggle 0.2s linear infinite;
+ animation: wiggle 0.2s linear infinite;
+}
+
.circle {
position: absolute;
right: 20px;