mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-24 14:30:56 +01:00
c40bc0c8bf
Summary: Ref T7014. With a mouse plugged in, multi-panel UIs are pretty hideous on OSX. This is somewhat offputting for me in Conpherence, and really jumps out at me with the new column mocks in T7014. Sites like Twitch and Facebook approach this by emulating the touchpad scrollbar to achieve a more aesthetic UI. Use a similar approach. This: - Replaces the main scrollbar with a prettier fake one. - This prepares the standard page frame for a persistent chat column. Test Plan: - Seems to work properly on OSX, Chrome and Firefox. Haven't tested on IE; my Windows setup is pretty iffy at the moment. - Tried Conpherence. - Tried Workboards. Reviewers: btrahan, chad Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T7014 Differential Revision: https://secure.phabricator.com/D11472
43 lines
1 KiB
JavaScript
43 lines
1 KiB
JavaScript
/**
|
|
* @provides javelin-behavior-slowvote-embed
|
|
* @requires javelin-behavior
|
|
* javelin-request
|
|
* javelin-stratcom
|
|
* javelin-dom
|
|
*/
|
|
JX.behavior('slowvote-embed', function() {
|
|
JX.Stratcom.listen(
|
|
['click'],
|
|
'slowvote-option',
|
|
function(e) {
|
|
if (!e.isNormalMouseEvent()) {
|
|
return;
|
|
}
|
|
e.kill();
|
|
|
|
var pollID = e.getNodeData('slowvote-embed').pollID;
|
|
var voteURI = '/vote/' + pollID + '/';
|
|
|
|
var request = new JX.Request(voteURI, function(r) {
|
|
var updated_poll = JX.$H(r.contentHTML);
|
|
var root = JX.$('phabricator-standard-page');
|
|
|
|
var polls = JX.DOM.scry(root, 'div', 'slowvote-embed');
|
|
|
|
for(var i = 0; i < polls.length; i++) {
|
|
var data = JX.Stratcom.getData(polls[i]);
|
|
|
|
if (data.pollID == pollID) {
|
|
JX.DOM.replace(polls[i], updated_poll);
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
request.addData({vote: e.getNodeData('slowvote-option').optionID});
|
|
request.send();
|
|
|
|
});
|
|
|
|
});
|