mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-27 19:06:15 -04:00
Steppers/Play-pause now in CSS
Also, the steppers actually work.
This commit is contained in:
parent
57ed44ff75
commit
748b38f9d6
3 changed files with 110 additions and 64 deletions
|
@ -1,9 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* slider handles (SliderHandle)
|
* slider handles (SliderHandle)
|
||||||
*/
|
*/
|
||||||
#timeslider .slider-handle {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-slider-handle {
|
.ui-slider-handle {
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
|
@ -28,6 +25,87 @@
|
||||||
width: 13px;
|
width: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Steppers
|
||||||
|
*/
|
||||||
|
|
||||||
|
.stepper {
|
||||||
|
background: url(../../static/img/stepper_buttons.png) 0 0 no-repeat;
|
||||||
|
height: 21px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
#leftstar {
|
||||||
|
background-position: 0 -44px;
|
||||||
|
right: 34px;
|
||||||
|
top: 8px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#rightstar {
|
||||||
|
background-position: -29px -44px;
|
||||||
|
right: 5px;
|
||||||
|
top: 8px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#leftstep:active {
|
||||||
|
background-position: 0 -22px;
|
||||||
|
right: 34px;
|
||||||
|
top: 20px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#leftstep {
|
||||||
|
background-position: 0 -66px;
|
||||||
|
right: 34px;
|
||||||
|
top: 20px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#rightstep:active {
|
||||||
|
background-position: -29px -22px;
|
||||||
|
right: 5px;
|
||||||
|
top: 20px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#rightstep {
|
||||||
|
background-position: -29px -66px;
|
||||||
|
right: 5px;
|
||||||
|
top: 20px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#playpause_button,
|
||||||
|
#playpause_button_icon {
|
||||||
|
height: 47px;
|
||||||
|
position: absolute;
|
||||||
|
width: 47px;
|
||||||
|
}
|
||||||
|
#playpause_button {
|
||||||
|
background-image: url(../../static/img/crushed_button_undepressed.png);
|
||||||
|
right: 77px;
|
||||||
|
top: 9px;
|
||||||
|
}
|
||||||
|
#playpause_button:active {
|
||||||
|
background-image: url(../../static/img/crushed_button_depressed.png);
|
||||||
|
right: 77px;
|
||||||
|
top: 9px;
|
||||||
|
}
|
||||||
|
#playpause_button_icon {
|
||||||
|
background-image: url(../../static/img/play.png);
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.pause#playpause_button_icon {
|
||||||
|
background-image: url(../../static/img/pause.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#timeslider .slider-handle {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
#editorcontainerbox {
|
#editorcontainerbox {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
top: 40px;
|
top: 40px;
|
||||||
|
@ -88,58 +166,6 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 20px;
|
top: 20px;
|
||||||
}
|
}
|
||||||
#playpause_button,
|
|
||||||
#playpause_button_icon {
|
|
||||||
height: 47px;
|
|
||||||
position: absolute;
|
|
||||||
width: 47px;
|
|
||||||
}
|
|
||||||
#playpause_button {
|
|
||||||
background-image: url(../../static/img/crushed_button_undepressed.png);
|
|
||||||
right: 77px;
|
|
||||||
top: 9px;
|
|
||||||
}
|
|
||||||
#playpause_button_icon {
|
|
||||||
background-image: url(../../static/img/play.png);
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
.pause#playpause_button_icon {
|
|
||||||
background-image: url(../../static/img/pause.png)
|
|
||||||
}
|
|
||||||
#leftstar,
|
|
||||||
#rightstar,
|
|
||||||
#leftstep,
|
|
||||||
#rightstep {
|
|
||||||
background: url(../../static/img/stepper_buttons.png) 0 0 no-repeat;
|
|
||||||
height: 21px;
|
|
||||||
overflow: hidden;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
#leftstar {
|
|
||||||
background-position: 0 -44px;
|
|
||||||
right: 34px;
|
|
||||||
top: 8px;
|
|
||||||
width: 30px;
|
|
||||||
}
|
|
||||||
#rightstar {
|
|
||||||
background-position: -29px -44px;
|
|
||||||
right: 5px;
|
|
||||||
top: 8px;
|
|
||||||
width: 29px;
|
|
||||||
}
|
|
||||||
#leftstep {
|
|
||||||
background-position: 0 -22px;
|
|
||||||
right: 34px;
|
|
||||||
top: 20px;
|
|
||||||
width: 30px;
|
|
||||||
}
|
|
||||||
#rightstep {
|
|
||||||
background-position: -29px -22px;
|
|
||||||
right: 5px;
|
|
||||||
top: 20px;
|
|
||||||
width: 30px;
|
|
||||||
}
|
|
||||||
#timeslider #timer {
|
#timeslider #timer {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
|
|
|
@ -192,7 +192,8 @@ $.Class("RevisionSlider",
|
||||||
{//instance
|
{//instance
|
||||||
init: function (timeslider, root_element) {
|
init: function (timeslider, root_element) {
|
||||||
this.timeslider = timeslider;
|
this.timeslider = timeslider;
|
||||||
console.log("New SliderUI, head_revision = %d", this.timeslider.head_revision);
|
this.revision_number = this.timeslider.head_revision;
|
||||||
|
console.log("New RevisionSlider, head_revision = %d", this.revision_number);
|
||||||
// parse the various elements we need:
|
// parse the various elements we need:
|
||||||
this.elements = {};
|
this.elements = {};
|
||||||
this.loadElements(root_element);
|
this.loadElements(root_element);
|
||||||
|
@ -203,7 +204,9 @@ $.Class("RevisionSlider",
|
||||||
change: function () { _this.onChange.apply(_this, arguments); },
|
change: function () { _this.onChange.apply(_this, arguments); },
|
||||||
slide: function () { _this.onSlide.apply(_this, arguments); },
|
slide: function () { _this.onSlide.apply(_this, arguments); },
|
||||||
});
|
});
|
||||||
this.loadSavedRevisions();
|
this.loadSavedRevisionHandles();
|
||||||
|
|
||||||
|
this._mouseInit();
|
||||||
},
|
},
|
||||||
onChange: function (value) {
|
onChange: function (value) {
|
||||||
console.log("in change handler:", value);
|
console.log("in change handler:", value);
|
||||||
|
@ -224,7 +227,7 @@ $.Class("RevisionSlider",
|
||||||
this.elements['revision-date'] = root_element.find("#revision_date");
|
this.elements['revision-date'] = root_element.find("#revision_date");
|
||||||
this.elements['authors'] = root_element.first("#authorsList");
|
this.elements['authors'] = root_element.first("#authorsList");
|
||||||
},
|
},
|
||||||
loadSavedRevisions: function () {
|
loadSavedRevisionHandles: function () {
|
||||||
for (var r in this.timeslider.savedRevisions) {
|
for (var r in this.timeslider.savedRevisions) {
|
||||||
var rev = this.timeslider.savedRevisions[r];
|
var rev = this.timeslider.savedRevisions[r];
|
||||||
this.slider.attachHandle(new SliderSavedRevisionUI(this, rev));
|
this.slider.attachHandle(new SliderSavedRevisionUI(this, rev));
|
||||||
|
@ -233,12 +236,30 @@ $.Class("RevisionSlider",
|
||||||
goToRevision: function (revNum) {
|
goToRevision: function (revNum) {
|
||||||
//TODO: this should actually do an async jump to revision (with all the server fetching
|
//TODO: this should actually do an async jump to revision (with all the server fetching
|
||||||
//and changeset rendering that that implies), and perform the setPosition in a callback.
|
//and changeset rendering that that implies), and perform the setPosition in a callback.
|
||||||
if (revNum <= 0 || revNum > this.timeslider.head_revision)
|
//TODO: we need some kind of callback for setting revision metadata.
|
||||||
|
//TODO: at some point we need to set window.location.hash
|
||||||
|
if (revNum > this.timeslider.head_revision)
|
||||||
revNum = this.timeslider.latest_revision;
|
revNum = this.timeslider.latest_revision;
|
||||||
|
if (revNum < 0)
|
||||||
|
revNum = 0;
|
||||||
console.log("GO TO REVISION", revNum)
|
console.log("GO TO REVISION", revNum)
|
||||||
|
this.elements["revision-label"].html(html10n.get("timeslider.version", { "version": revNum }));
|
||||||
this.slider.setValue(revNum);
|
this.slider.setValue(revNum);
|
||||||
|
this.revision_number = revNum;
|
||||||
|
//TODO: set the enabled/disabled for button-left and button-right
|
||||||
},
|
},
|
||||||
|
_mouseInit: function () {
|
||||||
|
var _this = this;
|
||||||
|
this.elements["button-left"].on("click", function (event) {
|
||||||
|
console.log("was :", _this.revision_number);
|
||||||
|
_this.goToRevision(_this.revision_number - 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.elements["button-right"].on("click", function (event) {
|
||||||
|
_this.goToRevision(_this.revision_number + 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -431,6 +452,8 @@ function loadBroadcastSliderJS(tsclient, fireWhenAllScriptsAreLoaded)
|
||||||
fixPadHeight();
|
fixPadHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This API is in use by broadcast.js
|
||||||
|
//TODO: refactor broadcast.js to use RevisionSlider instead
|
||||||
BroadcastSlider = {
|
BroadcastSlider = {
|
||||||
onSlider: onSlider,
|
onSlider: onSlider,
|
||||||
getSliderPosition: getSliderPosition,
|
getSliderPosition: getSliderPosition,
|
||||||
|
@ -532,7 +555,7 @@ function loadBroadcastSliderJS(tsclient, fireWhenAllScriptsAreLoaded)
|
||||||
|
|
||||||
|
|
||||||
// play/pause toggling
|
// play/pause toggling
|
||||||
$("#playpause_button").mousedown(function(evt)
|
$("XXXX#playpause_button").mousedown(function(evt)
|
||||||
{
|
{
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
@ -551,7 +574,7 @@ function loadBroadcastSliderJS(tsclient, fireWhenAllScriptsAreLoaded)
|
||||||
});
|
});
|
||||||
|
|
||||||
// next/prev saved revision and changeset
|
// next/prev saved revision and changeset
|
||||||
$('.stepper').mousedown(function(evt)
|
$('XXX.stepper').mousedown(function(evt)
|
||||||
{
|
{
|
||||||
var self = this;
|
var self = this;
|
||||||
var origcss = $(self).css('background-position');
|
var origcss = $(self).css('background-position');
|
||||||
|
|
|
@ -191,9 +191,6 @@ AuthenticatedSocketClient("TimesliderClient",
|
||||||
function init(baseURL) {
|
function init(baseURL) {
|
||||||
$(document).ready(function ()
|
$(document).ready(function ()
|
||||||
{
|
{
|
||||||
console.log("<<<<<<<<<<<<<<<<<<<<<<<<");
|
|
||||||
console.log("HELLO");
|
|
||||||
console.log("<<<<<<<<<<<<<<<<<<<<<<<<");
|
|
||||||
// start the custom js
|
// start the custom js
|
||||||
if (typeof customStart == "function") customStart();
|
if (typeof customStart == "function") customStart();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue