1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-18 19:40:55 +01:00

Limited Time Only!

Summary: I'll revert this within 24 hours, before I promote.

Test Plan: Had completely functional but greatly enhanced Phabricator experience in Firefox, Safari and Chrome.

Reviewers: chad

Reviewed By: chad

Differential Revision: https://secure.phabricator.com/D14884
This commit is contained in:
epriestley 2015-12-25 08:10:32 -08:00
parent 8f81b34ea1
commit 53fac2f89a
4 changed files with 111 additions and 3 deletions

View file

@ -7,7 +7,7 @@
*/ */
return array( return array(
'names' => array( 'names' => array(
'core.pkg.css' => 'a419cf4b', 'core.pkg.css' => 'ac9bbf2a',
'core.pkg.js' => '400453e4', 'core.pkg.js' => '400453e4',
'darkconsole.pkg.js' => 'e7393ebb', 'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '2de124c9', 'differential.pkg.css' => '2de124c9',
@ -111,7 +111,7 @@ return array(
'rsrc/css/font/font-aleo.css' => '8bdb2835', 'rsrc/css/font/font-aleo.css' => '8bdb2835',
'rsrc/css/font/font-awesome.css' => 'c43323c5', 'rsrc/css/font/font-awesome.css' => 'c43323c5',
'rsrc/css/font/font-lato.css' => 'c7ccd872', 'rsrc/css/font/font-lato.css' => 'c7ccd872',
'rsrc/css/font/phui-font-icon-base.css' => 'ecbbb4c2', 'rsrc/css/font/phui-font-icon-base.css' => 'c0fc32fa',
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82', 'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
'rsrc/css/layout/phabricator-hovercard-view.css' => '1239cd52', 'rsrc/css/layout/phabricator-hovercard-view.css' => '1239cd52',
'rsrc/css/layout/phabricator-side-menu-view.css' => 'bec2458e', 'rsrc/css/layout/phabricator-side-menu-view.css' => 'bec2458e',
@ -509,6 +509,7 @@ return array(
'rsrc/js/phuix/PHUIXDropdownMenu.js' => 'bd4c8dca', 'rsrc/js/phuix/PHUIXDropdownMenu.js' => 'bd4c8dca',
'rsrc/js/phuix/PHUIXFormControl.js' => '8fba1997', 'rsrc/js/phuix/PHUIXFormControl.js' => '8fba1997',
'rsrc/js/phuix/PHUIXIconView.js' => 'bff6884b', 'rsrc/js/phuix/PHUIXIconView.js' => 'bff6884b',
'rsrc/js/special/behavior-trail.js' => '740fe844',
), ),
'symbols' => array( 'symbols' => array(
'almanac-css' => 'dbb9b3af', 'almanac-css' => 'dbb9b3af',
@ -645,6 +646,7 @@ return array(
'javelin-behavior-phabricator-search-typeahead' => '048330fa', 'javelin-behavior-phabricator-search-typeahead' => '048330fa',
'javelin-behavior-phabricator-show-older-transactions' => 'dbbf48b6', 'javelin-behavior-phabricator-show-older-transactions' => 'dbbf48b6',
'javelin-behavior-phabricator-tooltips' => '3ee3408b', 'javelin-behavior-phabricator-tooltips' => '3ee3408b',
'javelin-behavior-phabricator-trail' => '740fe844',
'javelin-behavior-phabricator-transaction-comment-form' => 'b23b49e6', 'javelin-behavior-phabricator-transaction-comment-form' => 'b23b49e6',
'javelin-behavior-phabricator-transaction-list' => '13c739ea', 'javelin-behavior-phabricator-transaction-list' => '13c739ea',
'javelin-behavior-phabricator-watch-anchor' => '9f36c42d', 'javelin-behavior-phabricator-watch-anchor' => '9f36c42d',
@ -804,7 +806,7 @@ return array(
'phui-document-view-css' => 'a4a1c3b9', 'phui-document-view-css' => 'a4a1c3b9',
'phui-document-view-pro-css' => 'e0fad431', 'phui-document-view-pro-css' => 'e0fad431',
'phui-feed-story-css' => 'b7b26d23', 'phui-feed-story-css' => 'b7b26d23',
'phui-font-icon-base-css' => 'ecbbb4c2', 'phui-font-icon-base-css' => 'c0fc32fa',
'phui-fontkit-css' => '9cda225e', 'phui-fontkit-css' => '9cda225e',
'phui-form-css' => '0b98e572', 'phui-form-css' => '0b98e572',
'phui-form-view-css' => '4a1a0f5e', 'phui-form-view-css' => '4a1a0f5e',
@ -1360,6 +1362,12 @@ return array(
'javelin-vector', 'javelin-vector',
'javelin-dom', 'javelin-dom',
), ),
'740fe844' => array(
'javelin-behavior',
'javelin-dom',
'javelin-stratcom',
'javelin-vector',
),
'76b9fc3e' => array( '76b9fc3e' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',

View file

@ -215,6 +215,7 @@ final class PhabricatorStandardPageView extends PhabricatorBarePageView
require_celerity_resource('font-aleo'); require_celerity_resource('font-aleo');
Javelin::initBehavior('workflow', array()); Javelin::initBehavior('workflow', array());
Javelin::initBehavior('phabricator-trail');
$request = $this->getRequest(); $request = $this->getRequest();
$user = null; $user = null;

View file

@ -161,3 +161,21 @@
.device-desktop a.phui-icon-view.bluegrey:hover { .device-desktop a.phui-icon-view.bluegrey:hover {
color: {$darkbluetext}; color: {$darkbluetext};
} }
.ph-bounceout {
animation: bounceout 0.5s linear forwards;
}
@keyframes bounceout {
0% {
transform: scale(1.0) rotate(0deg);
}
10% {
transform: scale(2.0) rotate(0deg);
}
100% {
transform: scale(0) rotate(359deg);
opacity: 0;
}
}

View file

@ -0,0 +1,81 @@
/**
* @provides javelin-behavior-phabricator-trail
* @requires javelin-behavior
* javelin-dom
* javelin-stratcom
* javelin-vector
* @javelin
*/
JX.behavior('phabricator-trail', function() {
var last = null;
var trail = [];
var n = 0;
JX.Stratcom.listen('mousemove', null, function(e) {
var v = JX.$V(e);
if (!last) {
last = v;
return;
}
var dx = v.x - last.x;
var dy = v.y - last.y;
var spacing = 24;
if ((dx * dx) + (dy * dy) < (spacing * spacing)) {
// Mouse hasn't moved far enough, just bail.
return;
}
var node;
// If the trail is too long, throw away the end.
while (trail.length > 8) {
node = trail[0];
JX.DOM.remove(node);
trail.splice(0, 1);
}
var color;
if (n % 2) {
color = '#c0392b';
} else {
color = '#139543';
}
n++;
var icon;
if (Math.random() > 0.5) {
icon = 'fa-star';
} else {
icon = 'fa-tree';
}
node = JX.$N(
'span',
{
className: 'phui-icon-view phui-font-fa ph-bounceout ' + icon,
style: {
position: 'absolute',
color: color,
zIndex: 20151225
}
},
null);
var size = JX.Vector.getDim(node);
last.x -= size.x / 2;
last.y -= size.y / 2;
last.setPos(node);
trail.push(node);
document.body.appendChild(node);
last = v;
});
});