From f23e6a3f3bb4222e8033fa6f9064d58fe05c2463 Mon Sep 17 00:00:00 2001 From: Dominik Rodler Date: Sun, 26 Feb 2012 00:04:50 +0100 Subject: [PATCH 1/2] UI clean-up for pad and timeslider - cleaned CSS (sorted and grouped rules, removed unnecessary !importants and selectors, etc.) - added new edit bar icons (including PSD source files) and removed obsolete images - removed HTML bloat; - adjusted selectors etc. in JS to new markup structure; --- doc/photoshop_sources/editbar-sprite.psd | Bin 0 -> 226093 bytes doc/photoshop_sources/timeslider-sprite.psd | Bin 0 -> 68949 bytes static/css/pad.css | 1780 ++++++------------- static/css/timeslider.css | 157 +- static/img/ajax-loader.gif | Bin 0 -> 3208 bytes static/img/backgrad.gif | Bin 697 -> 0 bytes static/img/crushed_button_depressed.png | Bin 4134 -> 0 bytes static/img/crushed_button_undepressed.png | Bin 4166 -> 0 bytes static/img/crushed_current_location.png | Bin 1009 -> 0 bytes static/img/editbar-sprite.png | Bin 0 -> 9628 bytes static/img/etherpad_lite_icons.png | Bin 5541 -> 0 bytes static/img/fileicons.gif | Bin 1649 -> 0 bytes static/img/leftarrow.png | Bin 494 -> 0 bytes static/img/pause.png | Bin 2883 -> 0 bytes static/img/play.png | Bin 3017 -> 0 bytes static/img/roundcorner_left.gif | Bin 123 -> 0 bytes static/img/roundcorner_right.gif | Bin 131 -> 0 bytes static/img/stepper_buttons.png | Bin 4858 -> 0 bytes static/img/timeslider-sprite.png | Bin 0 -> 2139 bytes static/img/timeslider_background.png | Bin 182 -> 0 bytes static/img/timeslider_left.png | Bin 686 -> 0 bytes static/img/timeslider_right.png | Bin 517 -> 0 bytes static/js/broadcast_revisions.js | 81 +- static/js/broadcast_slider.js | 609 +++---- static/js/chat.js | 168 +- static/js/pad_editbar.js | 287 ++- static/js/pad_userlist.js | 684 +++---- static/js/timeslider.js | 152 +- static/pad.html | 517 +++--- static/timeslider.html | 331 ++-- 30 files changed, 1733 insertions(+), 3033 deletions(-) create mode 100644 doc/photoshop_sources/editbar-sprite.psd create mode 100644 doc/photoshop_sources/timeslider-sprite.psd create mode 100644 static/img/ajax-loader.gif delete mode 100644 static/img/backgrad.gif delete mode 100644 static/img/crushed_button_depressed.png delete mode 100644 static/img/crushed_button_undepressed.png delete mode 100644 static/img/crushed_current_location.png create mode 100644 static/img/editbar-sprite.png delete mode 100644 static/img/etherpad_lite_icons.png delete mode 100644 static/img/fileicons.gif delete mode 100644 static/img/leftarrow.png delete mode 100644 static/img/pause.png delete mode 100644 static/img/play.png delete mode 100644 static/img/roundcorner_left.gif delete mode 100644 static/img/roundcorner_right.gif delete mode 100644 static/img/stepper_buttons.png create mode 100644 static/img/timeslider-sprite.png delete mode 100644 static/img/timeslider_background.png delete mode 100644 static/img/timeslider_left.png delete mode 100644 static/img/timeslider_right.png diff --git a/doc/photoshop_sources/editbar-sprite.psd b/doc/photoshop_sources/editbar-sprite.psd new file mode 100644 index 0000000000000000000000000000000000000000..8b10fcb3f31acfa4d2cd13f70836ef1234439b50 GIT binary patch literal 226093 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 TA=#*5+m_nLB|L8Z*Ae`Gi;nE} literal 0 HcmV?d00001 diff --git a/static/css/pad.css b/static/css/pad.css index e12738b5092..b6a6c1902a6 100644 --- a/static/css/pad.css +++ b/static/css/pad.css @@ -1,1298 +1,630 @@ -*,html,body,p{ margin: 0; padding: 0; } -.clear { clear: both; } -html { font-size: 62.5%; width: 100%; } -body, textarea { font-family: Helvetica, Arial, sans-serif; } -iframe {position:absolute;} - -#users -{ - position: absolute; - z-index:500; - background-color: #000; - background-color: rgba(0,0,0,0.7); - width: 160px; - right: 20px; - top: 40px; - color: #fff; - padding: 5px; - border-radius: 6px; -} - -a img -{ - border: 0; -} - -/* menu */ -#editbar ul -{ - position: relative; - list-style: none; - padding-right: 3px; - padding-left: 1px; - z-index: 2; - overflow: hidden; - +*, HTML, BODY, P {margin:0; padding:0;} +HTML {font-size:62.5%; width:100%;} +BODY, TEXTAREA {font-family:Arial, Helvetica, sans-serif;} +IFRAME {position:absolute;} + +.clear {clear:both;} +.left {float:left;} +.right {float:right;} +.rtl {direction:RTL;} +.inactive {opacity:.2;} + +A {text-decoration:none;} +A:hover {color:#00b7ed;} +A:focus {outline:none;} + +INPUT[type=text] {border:2px solid #eaeaea; border-radius:5px; padding:3px 4px;} +INPUT[type=text]:focus {border-color:#00b7ed; outline:none;} +BUTTON {background:none; border:0 none; color:#999; cursor:pointer; font-size:12px; margin-right:5px;} +BUTTON:hover, .button:hover {color:#00b7ed;} +.button { + background:linear-gradient(#eee, #c5c5c5); + border:1px solid #d5d5d5; + border-radius:3px; + color:#888; + cursor:pointer; + font-weight:700; + overflow:hidden; + padding:4px; + text-align:center; + text-shadow:0 1px 0 #f5f5f5; } -#editbar -{ - background: #f7f7f7; - background: linear-gradient(#f7f7f7, #f1f1f1 80%); - border-bottom: 1px solid #ccc; - height: 32px; - overflow: hidden; - padding-top: 3px; - width: 100%; +/* editor toolbar */ +#editbar { + background:#f5f5f5; + background:linear-gradient(#f5f5f5, #eee 80%); + border-bottom:1px solid #d5d5d5; + overflow:hidden; + padding:3px 0 2px; + position:absolute; + width:100%; + z-index:2; +} +#editbar UL {list-style:none; overflow:hidden; padding:1px 3px 1px 2px; position:relative; z-index:2;} +#editbar .left {margin-left:22px;} +#editbar LI { + background:url(../../static/img/editbar-sprite.png) 0 0 no-repeat; + border-radius:3px; + border:1px solid #d5d5d5; + box-shadow:0 1px 0 #fff; + color:#999; + cursor:pointer; + display:block; + float:left; + height:20px; + margin-left:2px; + overflow:hidden; + padding:2px; + width:20px; +} +#editbar .group-start {border-radius:3px 0 0 3px; border-width:1px 0 1px 1px;} +#editbar .group-mid {border-radius:0; border-width:1px 0 1px 1px; margin-left:0;} +#editbar .group-end {border-radius:0 3px 3px 0; margin:0 1em 0 0;} + +/* editbar icons */ +LI#bold {background-position:2px 2px;} +LI#italic {background-position:2px -18px;} +LI#underline {background-position:2px -38px;} +LI#strikethrough {background-position:2px -58px;} +LI#unorderedlist {background-position:2px -78px;} +LI#orderedlist {background-position:2px -98px;} +LI#indent {background-position:2px -118px;} +LI#outdent {background-position:2px -138px;} +LI#undo {background-position:2px -158px;} +LI#redo {background-position:2px -178px;} +LI#clearauthorship {background-position:2px -198px;} +LI#settings {background-position:2px -258px;} +LI#importexport {background-position:2px -278px;} +LI#history {background-position:2px -298px;} +LI#users {background-position:2px -318px; font-size:12px; text-align:right; width:32px;} +LI#embed {background-position:2px -338px;} +LI#bold:hover {background-position:-38px 2px;} +LI#italic:hover {background-position:-38px -18px;} +LI#underline:hover {background-position:-38px -38px;} +LI#strikethrough:hover {background-position:-38px -58px;} +LI#unorderedlist:hover {background-position:-38px -78px;} +LI#orderedlist:hover {background-position:-38px -98px;} +LI#indent:hover {background-position:-38px -118px;} +LI#outdent:hover {background-position:-38px -138px;} +LI#undo:hover {background-position:-38px -158px;} +LI#redo:hover {background-position:-38px -178px;} +LI#clearauthorship:hover {background-position:-38px -198px;} +LI#settings:hover, +#settings.selected {background-position:-38px -258px;} +LI#importexport:hover, +#importexport.selected {background-position:-38px -278px;} +LI#history:hover, +#history.selected {background-position:-38px -298px;} +LI#users:hover, +#users.selected {background-position:-38px -318px; color:#00b7ed;} +LI#embed:hover, +#embed.selected {background-position:-38px -338px;} + +#editorcontainer {bottom:0; left:0; position:absolute; top:34px; width:100%; z-index:1;} +.chat-visible #editorcontainer {right:192px; width:auto;} +#editorcontainer IFRAME {height:100%; margin:0; padding:0; width:100%;} +#editorloadingbox { + background:url(../../static/img/ajax-loader.gif) 50% 0 no-repeat; + color:#aaa; + font-size:24px; + height:64px; + margin:200px auto 0; + padding-top:48px; + position:absolute; + text-align:center; + width:100%; + z-index:100; } +#editorcontainerbox {bottom:0; position:absolute; top:0; width:100%;} -#editbar ul li -{ - background: #fff; - background: linear-gradient(#fff, #f0f0f0); - border: 1px solid #ccc; - border-radius: 4px; - cursor: pointer; - float: left; - height: 18px; - margin-left: 2px; - overflow: hidden; - padding: 4px 5px; - width: 18px; -} +#padpage.full-width {width:100%;} +.full-width #revision {position:absolute; right:20px; top:20px;} +.full-width #padmain {left:0; right:197px; width:auto;} +.full-width #rightbars {margin-right:0; right:7px;} +.full-width #timeslider {width:auto;} -#editbar ul li a -{ - text-decoration: none; - color: #ccc; -} +#padcontent {font-size:12px; padding:10px;} -#editbar ul li a span -{ - position: relative; - top:-2px -} +#padpage {bottom:0; position:absolute; top:0; width:100%;} +.maximized #padpage {left:8px; margin-left:0; right:8px; width:auto;} +.fullwidth #padpage {margin-left:6px; margin-right:6px; width:auto;} +.squish1width #padpage {width:800px;} +.squish2width #padpage {width:700px;} -#editbar ul li:hover { - background: #fff; -} +#padmain {bottom:0; left:0; margin-top:0; position:absolute; right:0; top:30px; zoom:1;} +#padeditor {bottom:0; left:0; position:absolute; right:0; top:0; zoom:1;} +.hidesidebar #padeditor {right:0;} -#editbar ul li:active { - background: #eee; - background: linear-gradient(#ddd, #fff); -} +#specialkeyarea {color:yellow; font-size:1.5em; font-weight:700; left:250px; position:absolute; top:5px;} -#editbar ul li.separator -{ - border: inherit; - background: inherit; - visibility:hidden; - width: 0px; -} -#editbar ul li a -{ - display: block; -} -#editbar ul li a img -{ - padding: 1px; -} +#alertbar {display:none; left:0; margin-top:6px; opacity:0; position:absolute; right:0; z-index:53;} +#servermsg {background:#ffc; border:1px solid #992; font-size:1.2em; padding:.8em; position:relative; zoom:1;} +#servermsg H3 {float:left; font-weight:700; margin-bottom:1em; margin-right:10px; width:auto;} +#servermsg #servermsgdate {color:#666; font-style:italic; font-weight:400;} +#hidetopmsg {bottom:5px; position:absolute; right:5px;} +#shuttingdown {background:#ffc; border:1px solid #992; font-size:1.2em; margin-top:6px; padding:.6em; position:relative; zoom:1;} -#editbar ul -{ - float: left; -} -#editbar ul#menu_right -{ - float: right; -} +#editbarsavetable {height:24px; position:absolute; right:8px; top:6px;} +#editbarsavetable TD, #editbartable TD {white-space:nowrap;} -#users -{ - display: none; -} - -#editorcontainer -{ - position: absolute; - - width: 100%; - - top: 36px; - left: 0px; - bottom: 0px; - - z-index: 1; -} - -#editorcontainer iframe { - height: 100%; - width: 100%; - padding: 0; - margin: 0; -} - -#editorloadingbox { padding-top: 100px; padding-bottom: 100px; font-size: 2.5em; color: #aaa; - text-align: center; position: absolute; width: 100%; height: 30px; z-index: 100; } - -#editorcontainerbox{ +/* modal windows for settings ################################################# */ +.popup { + background:#222; + background:rgba(0,0,0,.6); + border-radius:0 0 5px 5px; + box-shadow:0 0 8px #999; + color:#ddd; + display:none; + font-size:12px; + padding:6px 10px; position:absolute; + right:3px; + top:34px; + width:450px; + z-index:2; +} +.popup H2, .popup H3 {font-size:14px; margin:.5em 0 2px;} +.popup INPUT[type=text] {box-sizing:border-box; display:block; width:100px;} +.popup INPUT[type=checkbox] {margin-right:2px;} +.popup A {text-decoration:none;} +.popup P {margin:4px 0 0 0;} +.left_popup {float:left; width:50%;} +.right_popup {box-sizing:border-box; float:left; width:50%;} + +/* users modal */ +#usersmenu {width:120px; z-index:500;} + +#myswatchbox {cursor:pointer; height:24px; left:6px; position:absolute; width:24px;} +#myswatch {background:transparent; border-radius:3px; height:100%; width:100%;} + +#myusernameform {margin-left:25px;} +#myusernameedit {background:transparent; color:#fff; margin:0; padding:3px 4px;} + +#mystatusform {margin-left:35px; margin-top:5px;} +#mystatusedit {background:transparent; border:1px solid #bbb; color:#777; display:none; height:14px; margin:0; padding:2px; width:199px;} + +#otheruserstable {display:none;} +#otheruserstable TD {border-top:1px solid #555; color:#fff; height:26px; padding:0 2px; vertical-align:middle;} +#otheruserstable .swatch {border:1px solid #000; height:13px; margin:0 4px; overflow:hidden; width:13px;} +.usertdswatch {width:1%;} +.usertdname {font-size:1.3em; color:#444;} +.usertdname .editempty {color:#888; font-style:italic;} +.usertdstatus {font-size:1.1em; font-style:italic; color:#999;} +.usertdactivity {font-size:1.1em; color:#777;} + +#nootherusers {color:#eee; font-size:1.2em; font-weight:700; padding:10px;} +#nootherusers A {color:#3c88ff;} + +/* colorpicker and swatches modal */ +#mycolorpicker {background:rgba(0, 0, 0, 0.7); border-radius:0 0 5px 5px; display:none; left:-250px; padding:10px; position:absolute; top:0; z-index:101;} +#colorpicker {margin-bottom:10px;} +#mycolorpickerpreview {display:none;} /*#mycolorpickerpreview {border-radius:3px; display:block; float:right; height:24px; width:24px;}*/ +#colorpickerswatches {padding-left:3px; padding-top:5px;} +#colorpickerswatches LI {border:1px solid #ccc; height:14px; margin:3px 6px; overflow:hidden; padding:0; width:14px;} +#colorpickerswatches LI:hover {border:1px solid #000; cursor:pointer;} + +/* export formats */ +.exporttype {background:url(../../static/img/editbar-sprite.png) 0 0 no-repeat; color:#fff; margin-top:2px; padding-left:25px; text-decoration:none;} +#exporthtml {background-position:-40px -484px} +#exportplain {background-position:-40px -564px} +#exportword {background-position:-40px -464px} +#exportpdf {background-position:-40px -544px} +#exportopen {background-position:-40px -524px} +#exportwordle {background-position:-40px -564px} +#exportdokuwiki {background-position:-40px -504px} + +#importexportline {border-left:1px solid #fff; height:190px; left:260px; opacity:.8; position:absolute; width:0;} +.impexpbutton {background-image:linear-gradient(50% top, #ddd, #fff 20%, #fff 20%); padding:3px;} +#importmessagesuccess {display:none;} +#importsubmitinput {margin-top:12px;} + +#focusprotector {background-color:#fff; bottom:0; display:none; left:0; opacity:0.01; position:absolute; right:0; top:0; z-index:100;} + +/* embed / share pad */ +#embedmenu INPUT[type=text] {width:100%;} +#embedreadonly {margin-top:9px;} +#qr_center {margin:10px 10px auto 0; text-align:center;} +#embedreadonlyqr {box-shadow:0 0 10px #000; transition:all .2s ease-in-out;} +#embedreadonlyqr:hover {cursor:none; transform:scale(1.5);} + + +/* chat ####################################################################### */ +#chaticon { + background-color:#eee; + border-radius:3px 3px 0 0; bottom:0; - top:0; - width:100%; -} - - -#padpage { - position: absolute; - top: 0px; - bottom: 0px; - width: 100%; -} - -.maximized #padpage { - left: 8px; - right: 8px; - width: auto; - margin-left: 0; -} - -body.fullwidth #padpage { width: auto; margin-left: 6px; margin-right: 6px; } -body.squish1width #padpage { width: 800px; } -body.squish2width #padpage { width: 700px; } - -a#backtoprosite, #accountnav { - display: block; position: absolute; height: 15px; line-height: 15px; - width: auto; top: 5px; font-size: 1.2em; display:none; -} -a#backtoprosite, #accountnav a { color: #cde7ff; text-decoration: underline; } - -a#backtoprosite { padding-left: 20px; left: 6px; - background: url(static/img/protop.gif) no-repeat -5px -6px; } -#accountnav { right: 30px; color: #fff; } - -.propad a#topbaretherpad { background: url(static/img/protop.gif) no-repeat -397px -3px; } - -#specialkeyarea { top: 5px; left: 250px; color: yellow; font-weight: bold; - font-size: 1.5em; position: absolute; } - -#alertbar { - margin-top: 6px; - opacity: 0; - display: none; + color:#999; + cursor:pointer; + font-size:12px; + padding:6px 5px 3px 4px; + position:fixed; + right:4px; + text-shadow:0 1px 0 #fff; + z-index:1; +} +#chaticon A, #chatlabel {padding:3px 0 0;} +#chaticon A {background:url(../../static/img/editbar-sprite.png) -40px -381px no-repeat; margin-right:5px; padding-left:22px; text-decoration:none;} +#chaticon:hover A, #chaticon:hover SPAN {color:#00b7ed;} +#chaticon:hover A {background-position:-40px -401px;} +#chaticon SPAN {font-weight:700;} + +#chatbox { + background-color:#eee; + border:2px solid #eee; + border-bottom-width:0; + border-radius:3px 3px 0 0; + bottom:0; + display:none; + height:300px; + padding-bottom:10px; + padding:3px; position:absolute; + right:3px; + width:260px; + z-index:1; +} +.chat-visible #chatbox {border-color:#d5d5d5; border-radius:0; border-width:0 0 0 1px; height:auto; right:0; top:34px;} +#titlebar {bottom:2px; color:#999; font-size:12px; font-weight:700; padding:2px 1px; position:relative; text-shadow:0 1px 0 #fff;} +#titlelabel {position:absolute;} +#titlecross {background:url(../../static/img/editbar-sprite.png) 0 -440px; cursor:pointer; float:right; height:16px; margin:-1px -4px 0 0; width:16px;} +#titlecross:hover {background-position:-40px -440px;} +#chattext { + background-color:#fff; + bottom:30px; + font-size:12px; left:0; + overflow-y:scroll; + position:absolute; right:0; - z-index:53; -} - -#servermsg { position: relative; zoom: 1; border: 1px solid #992; - background: #ffc; padding: 0.8em; font-size: 1.2em; } -#servermsg h3 { font-weight: bold; margin-right: 10px; - margin-bottom: 1em; float: left; width: auto; } -#servermsg #servermsgdate { font-style: italic; font-weight: normal; color: #666; } -a#hidetopmsg { position: absolute; right: 5px; bottom: 5px; } - -#shuttingdown { position: relative; zoom: 1; border: 1px solid #992; - background: #ffc; padding: 0.6em; font-size: 1.2em; margin-top: 6px; } - -#docbar { margin-top: 6px; height: 25px; position: relative; zoom: 1; - background: #fbfbfb url(static/img/padtopback2.gif) repeat-x 0 -31px; } - -.docbarbutton -{ - padding-top: 2px; - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - border-left: 1px solid #CCC; - white-space: nowrap; -} - -.docbarbutton img -{ - border: 0px; - width: 13px; - margin-right: 2px; - vertical-align: middle; - margin-top: 3px; - margin-bottom: 2px; -} - -.menu, -.menu ul { - font-size: 10pt; - list-style-type: none; -} - -.menu ul { - padding-left: 20px; -} - -.menu a { - font-size: 10px; - line-height: 18px; - text-decoration: none; - color: #444; - font-weight: bold; -} - -.docbarbutton.highlight -{ - background-color: #fef2bd; - border: 1px solid #CCC; - border-right: 0px; -} - -#docbarleft { position: absolute; left: 0; top: 0; height: 100%; - overflow: hidden; - background: url(static/img/padtop5.gif) no-repeat left -31px; width: 7px; } - - - -#docbarpadtitle { position: absolute; height: auto; left: 9px; - width: 280px; font-size: 1.6em; color: #444; font-weight: normal; - line-height: 22px; margin-left: 2px; height: 22px; top: 2px; - overflow: hidden; text-overflow: ellipsis /*not supported in FF*/; - white-space:nowrap; } -.docbar-public #docbarpadtitle { padding-left: 22px; - background: url(static/img/public.gif) no-repeat left center; } - -#docbarrenamelink { position: absolute; top: 6px; - font-size: 1.1em; display: none; } -#docbarrenamelink a { color: #999; } -#docbarrenamelink a:hover { color: #48d; } -#padtitlebuttons { position: absolute; width: 74px; zoom: 1; - height: 17px; top: 4px; left: 170px; display: none; - background: url(static/img/ok_or_cancel.gif) 0px 0px; } -#padtitlesave { position: absolute; display: block; - height: 0; padding-top: 17px; overflow: hidden; - width: 23px; left: 0; top: 0; } -#padtitlecancel { position: absolute; display: block; - height: 0; padding-top: 17px; overflow: hidden; - width: 35px; right: 0; top: 0; } -#padtitleedit { position: absolute; top: 2px; left: 5px; - height: 15px; padding: 2px; font-size: 1.4em; - background: white; border-left: 1px solid #c3c3c3; - border-top: 1px solid #c3c3c3; - border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; - width: 150px; display: none; -} - -#padmain { - margin-top: 0px; - position: absolute; - top: 63px !important; - left: 0px; - right: 0px; - bottom: 0px; - zoom: 1; + top:20px; + z-index:1002; } - -#padeditor { - bottom:0px; - left:0; +.chat-visible #chattext {top:0;} +#chattext P {overflow-x:hidden; padding:3px; word-wrap:break-word;} +.time {color:#eee; float:right; margin:0 1px;} +#chatinputbox {bottom:0; left:0; padding:2px 1px; position:absolute; right:0;} +#chatinputbox INPUT {font-size:12px; width:94%;} + +#chatthrob { + background-color:#000; + background-color:rgb(0,0,0); + background-color:rgba(0,0,0,0.7); + border-radius:6px; + bottom:40px; + color:#fff; + display:none; + font-size:14px; + height:40px; + opacity:.8; + padding:10px; position:absolute; - right:0px; - top:0; - zoom: 1; + right:20px; + width:150px; + z-index:200; +} + + +/* pad content styles ######################################################### */ +/* lists */ +.list-bullet2, .list-indent2, .list-number2 {margin-left:3em;} +.list-bullet3, .list-indent3, .list-number3 {margin-left:4.5em;} +.list-bullet4, .list-indent4, .list-number4 {margin-left:6em;} +.list-bullet5, .list-indent5, .list-number5 {margin-left:7.5em;} +.list-bullet6, .list-indent6, .list-number6 {margin-left:9em;} +.list-bullet7, .list-indent7, .list-number7 {margin-left:10.5em;} +.list-bullet8, .list-indent8, .list-number8 {margin-left:12em;} + +/* unordered lists */ +UL {list-style-type:disc; margin-left:1.5em;} +UL UL {margin-left:0 !important;} + +.list-bullet2, .list-bullet5, .list-bullet8 {list-style-type:circle;} +.list-bullet3, .list-bullet6 {list-style-type:square;} + +.list-indent1, .list-indent2, .list-indent3, .list-indent5, .list-indent5, .list-indent6, .list-indent7, .list-indent8 {list-style-type:none;} + +/* ordered lists */ +OL {list-style-type:decimal; margin-left:1.5em;} +.list-number2, .list-number5, .list-number8 {list-style-type:lower-latin;} +.list-number3, .list-number6 {list-style-type:lower-roman;} + + +/* media-specific styles ###################################################### */ +@media screen and (max-width:960px) { + .modaldialog {left:0; margin:0 auto; position:relative; top:40px; width:80%;} +} + +@media only screen and (min-device-width:320px) and (max-device-width:720px) { + #editbar UL LI {padding:4px 3px;} + #editbar #menu_right > LI {padding:4px 8px;margin-top:2px; padding:4px 8px;} + #editbar #menu_right { + background:#f7f7f7; + background:linear-gradient(#f7f7f7, #f1f1f1 80%); + border-top:1px solid #ccc; + bottom:0; + height:32px; + overflow:hidden; + position:fixed; + width:100%; + } + #editbar #menu_right LI:not(:last-child) {display:none;} + #editbar #menu_right LI:last-child {border-radius:0; border:0; float:right; height:24px; margin-top:0;} + #chaticon {opacity:.8;} + #users {right:4px;} + #mycolorpicker {left:-72px;} /* #mycolorpicker:width - #users:width */ + #editorcontainer {margin-bottom:33px;} + #chaticon { + background:#f7f7f7; + background:linear-gradient(#f7f7f7, #f1f1f1 80%); + border:0; + border-radius:0; + border-right:none; + bottom:0; + right:55px; + } + #chatbox {bottom:32px; right:0;} + #editbar UL LI A SPAN {top:-3px;} + #usericonback {margin-top:4px;} } -.hidesidebar #padeditor { right: 0; } -#vdraggie { -/* background: url(static/img/vdraggie.gif) no-repeat top center;*/ - width:16px; - height:16px; - background-image:url('../../static/img/etherpad_lite_icons.png'); - background-repeat: no-repeat; - background-position: 0px -300px; - cursor: W-resize; - bottom:0; - position:absolute; - right:268px; - top:0; - width:56px; - z-index: 10; +/* IE fixes ################################################################### */ +* HTML #modaloverlay {/* for IE 6+ */ + background-image:none; + background-repeat:no-repeat; + opacity:1; /* in case this is looked at */ } -#editbarsavetable -{ - position:absolute; - top: 6px; - right: 8px; - height: 24px; -} -#editbarsavetable td, #editbartable td -{ - white-space: nowrap; -} +/* We give docbar a higher z-index than its descendant impexp-wrapper in + order to allow the Import/Export panel to be on top of stuff lower + down on the page in IE. Strange but it works! */ +#docbar {z-index:52;} -#myswatchbox { - position: absolute; - left: 5px; - top: 5px; - width: 24px; - height: 24px; - border: 1px solid #000; - background: transparent; - cursor: pointer; -} +#impexp-wrapper {right:10px; width:650px;} +#impexp-panel {height:160px;} +.docbarimpexp-closing #impexp-wrapper {z-index:50;} -#myswatch { width: 100%; height: 100%; background: transparent;/*...initially*/ } - -#mycolorpicker { - width: 232px; height: 265px; - position: absolute; - left: -250px; top: 0px; z-index: 101; - display: none; - border-radius: 5px; - background: rgba(0, 0, 0, 0.7); - padding-left:10px; - padding-top:10px; -} -/* -#mycolorpicker ul li -{ - float: left; -} -#mycolorpicker .picked { border: 1px solid #000 !important; } +#savedrevs-wrapper {left:0; width:100%;} +#savedrevs-panel {height:79px;} +.docbarsavedrevs-closing #savedrevs-wrapper {z-index:50;} +#savedrevs-wrapper .dbpanel-rightedge {background-position:0 -10px;} -#mycolorpicker .picked .pickerswatch { border: 1px solid #fff; } -*/ -#mycolorpickersave { - left: 10px; - font-weight: bold; -} +#options-wrapper {right:200px; width:340px;} +#options-panel {height:114px;} +.docbaroptions-closing #options-wrapper {z-index:50;} -#mycolorpickercancel { - left: 85px; -} +#security-wrapper {right:300px; width:320px;} +#security-panel {height:130px;} +.docbarsecurity-closing #security-wrapper {z-index:50;} -#mycolorpickersave, #mycolorpickercancel { - background: #fff; - background: linear-gradient(#fff, #ccc); - border: 1px solid #ccc; - border-radius: 4px; - font-size:12px; - cursor: pointer; - color:#000; - overflow: hidden; - padding: 4px; - top: 240px; - text-align:center; - position: absolute; - width: 60px; -} +#revision-notifier {position:absolute; right:8px; top:25px; + width:auto; height:auto; font-size:1.2em; background:#ffc; + border:1px solid #aaa; color:#444; padding:3px 5px; + display:none; z-index:55;} +#revision-notifier .label {color:#777; font-weight:700;} -#mycolorpickerpreview { - position: absolute; - left: 207px; - top: 240px; - width:16px; - height:16px; - padding:4px; - overflow: hidden; - color: #fff; - border-radius:5px; -} +#mainmodals {z-index:600;} /* higher than the modals themselves so that modals are on top in IE */ +.modalfield {border:1px solid #bbb; font-size:1.2em; padding:1px;} +#mainmodals .editempty {color:#aaa;} +.expand-collapse {background:url(static/img/sharedistri.gif) 0 3px no-repeat; height:22px; padding-left:17px; text-decoration:none;} +.expand-collapse.expanded {background-position:0 -31px;} -#myusernameform { margin-left: 35px; } -#myusernameedit { font-size: 1.3em; color: #fff; - padding: 3px; height: 18px; margin: 0; border: 0; - width: 117px; background: transparent; } -#myusernameform input.editable { border: 1px solid #444; } -#myuser .myusernameedithoverable:hover { background: white; color: black} -#mystatusform { margin-left: 35px; margin-top: 5px; } -#mystatusedit { font-size: 1.2em; color: #777; - font-style: italic; display: none; - padding: 2px; height: 14px; margin: 0; border: 1px solid #bbb; - width: 199px; background: transparent; } -#myusernameform .editactive, #myusernameform .editempty { - background: white; border-left: 1px solid #c3c3c3; - border-top: 1px solid #c3c3c3; - border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; - color: #000 +.modaldialog { + background:#fff1a8 none; + border:2px solid #fde97f; + border-radius:5px; + color:#666; + display:none; + height:auto; + left:50%; + margin:5em auto 2em; + overflow:hidden; + padding:10px 16px; + position:absolute; + text-align:center; + top:100px; + width:485px; + z-index:501; + zoom:1; } -#myusernameform .editempty { color: #333; } - -table#otheruserstable { display: none; } -#nootherusers { padding: 10px; font-size: 1.2em; color: #eee; font-weight: bold;} -#nootherusers a { color: #3C88FF; } - -#otheruserstable td { - border-top: 1px solid #555; - height: 26px; - vertical-align: middle; - padding: 0 2px; - color: #fff; +.modaldialog .modaldialog-inner {padding:10px;} +.modaldialog .modaldialog-hide { + background:url(static/img/sharebox4.gif) -454px -6px no-repeat; + display:block; + float:right; + height:22px; + margin-right:-5px; + margin-top:-5px; + width:22px; } -#otheruserstable .swatch { - border: 1px solid #000; width: 13px; height: 13px; overflow: hidden; - margin: 0 4px; -} +.modaldialog LABEL, .modaldialog H1 {color:#222; font-size:125%; font-weight:700;} -.usertdswatch { width: 1%; } -.usertdname { font-size: 1.3em; color: #444; } -.usertdstatus { font-size: 1.1em; font-style: italic; color: #999; } -.usertdactivity { font-size: 1.1em; color: #777; } +.modaldialog TH {text-align:left; vertical-align:top;} -.usertdname input { border: 1px solid #bbb; width: 80px; padding: 2px; } -.usertdname input.editactive, .usertdname input.editempty { - background: white; border-left: 1px solid #c3c3c3; - border-top: 1px solid #c3c3c3; - border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; -} -.usertdname input.editempty { color: #888; font-style: italic;} - .modaldialog.cboxreconnecting .modaldialog-inner, -.modaldialog.cboxconnecting .modaldialog-inner { - background: url(../../static/img/connectingbar.gif) no-repeat center 60px; - height: 100px; -} -.modaldialog.cboxreconnecting, -.modaldialog.cboxconnecting, -.modaldialog.cboxdisconnected { - background: #8FCDE0; -} -.cboxdisconnected #connectionboxinner div { display: none; } -.cboxdisconnected_userdup #connectionboxinner #disconnected_userdup { display: block; } -.cboxdisconnected_deleted #connectionboxinner #disconnected_deleted { display: block; } -.cboxdisconnected_initsocketfail #connectionboxinner #disconnected_initsocketfail { display: block; } -.cboxdisconnected_looping #connectionboxinner #disconnected_looping { display: block; } -.cboxdisconnected_slowcommit #connectionboxinner #disconnected_slowcommit { display: block; } -.cboxdisconnected_unauth #connectionboxinner #disconnected_unauth { display: block; } -.cboxdisconnected_unknown #connectionboxinner #disconnected_unknown { display: block; } +.modaldialog.cboxconnecting .modaldialog-inner + {background:url(../../static/img/ajax-loader.gif) no-repeat 50% 0; height:100px;} + +.cboxdisconnected #connectionboxinner DIV, +.cboxdisconnected .disconnected H2, +.cboxdisconnected_userdup .disconnected .h2_disconnect, +.cboxdisconnected_unauth .disconnected .h2_disconnect + {display:none;} + +.cboxdisconnected_userdup #connectionboxinner #disconnected_userdup, +.cboxdisconnected_deleted #connectionboxinner #disconnected_deleted, +.cboxdisconnected_initsocketfail #connectionboxinner #disconnected_initsocketfail, +.cboxdisconnected_looping #connectionboxinner #disconnected_looping, +.cboxdisconnected_slowcommit #connectionboxinner #disconnected_slowcommit, +.cboxdisconnected_unauth #connectionboxinner #disconnected_unauth, +.cboxdisconnected_unknown #connectionboxinner #disconnected_unknown, .cboxdisconnected_initsocketfail #connectionboxinner #reconnect_advise, .cboxdisconnected_looping #connectionboxinner #reconnect_advise, .cboxdisconnected_slowcommit #connectionboxinner #reconnect_advise, -.cboxdisconnected_unknown #connectionboxinner #reconnect_advise { display: block; } -.cboxdisconnected div#reconnect_form { display: block; } -.cboxdisconnected .disconnected h2 { display: none; } -.cboxdisconnected .disconnected .h2_disconnect { display: block; } -.cboxdisconnected_userdup .disconnected h2.h2_disconnect { display: none; } -.cboxdisconnected_userdup .disconnected h2.h2_userdup { display: block; } -.cboxdisconnected_unauth .disconnected h2.h2_disconnect { display: none; } -.cboxdisconnected_unauth .disconnected h2.h2_unauth { display: block; } - -#connectionstatus { - position: absolute; width: 37px; height: 41px; overflow: hidden; - right: 0; - z-index: 11; -} +.cboxdisconnected_unknown #connectionboxinner #reconnect_advise, +.cboxdisconnected #reconnect_form, +.cboxdisconnected .disconnected .h2_disconnect, +.cboxdisconnected_userdup .disconnected .h2_userdup, +.cboxdisconnected_unauth .disconnected .h2_unauth + {display:block;} + +#connectionstatus {height:41px; overflow:hidden; position:absolute; right:0; width:37px; z-index:11;} #connectionboxinner .connecting { - margin-top: 20px; - font-size: 2.0em; color: #555; - text-align: center; display: none; + margin-top:20px; + font-size:2em; + color:#555; + text-align:center; + display:none; } -.cboxconnecting #connectionboxinner .connecting { display: block; } +.cboxconnecting #connectionboxinner .connecting {display:block;} #connectionboxinner .disconnected h2 { - font-size: 1.8em; color: #333; - text-align: left; - margin-top: 10px; margin-left: 10px; margin-right: 10px; - margin-bottom: 10px; + font-size:1.8em; color:#333; + text-align:left; + margin-top:10px; margin-left:10px; margin-right:10px; + margin-bottom:10px; } #connectionboxinner .disconnected p { - margin: 10px 10px; - font-size: 1.2em; - line-height: 1.1; - color: #333; -} -#connectionboxinner .disconnected { display: none; } -.cboxdisconnected #connectionboxinner .disconnected { display: block; } - -#connectionboxinner .reconnecting { - margin-top: 20px; - font-size: 1.6em; color: #555; - text-align: center; display: none; -} -.cboxreconnecting #connectionboxinner .reconnecting { display: block; } - -#reconnect_form button { - font-size: 12pt; - padding: 5px; -} - -/* We give docbar a higher z-index than its descendant impexp-wrapper in - order to allow the Import/Export panel to be on top of stuff lower - down on the page in IE. Strange but it works! */ -#docbar { z-index: 52; } - -#impexp-wrapper { width: 650px; right: 10px; } -#impexp-panel { height: 160px; } -.docbarimpexp-closing #impexp-wrapper { z-index: 50; } - -#savedrevs-wrapper { width: 100%; left: 0; } -#savedrevs-panel { height: 79px; } -.docbarsavedrevs-closing #savedrevs-wrapper { z-index: 50; } -#savedrevs-wrapper .dbpanel-rightedge { background-position: 0 -10px; } - -#options-wrapper { width: 340px; right: 200px; } -#options-panel { height: 114px; } -.docbaroptions-closing #options-wrapper { z-index: 50; } - -#security-wrapper { width: 320px; right: 300px; } -#security-panel { height: 130px; } -.docbarsecurity-closing #security-wrapper { z-index: 50; } - -#revision-notifier { position: absolute; right: 8px; top: 25px; - width: auto; height: auto; font-size: 1.2em; background: #ffc; - border: 1px solid #aaa; color: #444; padding: 3px 5px; - display: none; z-index: 55; } -#revision-notifier .label { color: #777; font-weight: bold; } - -#mainmodals { z-index: 600; /* higher than the modals themselves - so that modals are on top in IE */ } -.modalfield { font-size: 1.2em; padding: 1px; border: 1px solid #bbb;} -#mainmodals .editempty { color: #aaa; } - -.expand-collapse { - height: 22px; - background-image: url(static/img/sharedistri.gif); - background-repeat: no-repeat; - background-position: 0 3px; - padding-left: 17px; - text-decoration: none; -} -.expand-collapse.expanded { - background-position: 0 -31px; -} - - -.modaldialog { - position: absolute; - top: 100px; - left:50%; - margin-left:-243px; - width: 485px; - display: none; - z-index: 501; - zoom: 1; - overflow: hidden; - background: white; - border: 1px solid #999; -} -.modaldialog .modaldialog-inner { padding: 10pt; } -.modaldialog .modaldialog-hide { - float: right; - background-repeat: no-repeat; - background-image: url(static/img/sharebox4.gif); - display: block; - width: 22px; height: 22px; - background-position: -454px -6px; - margin-right:-5px; - margin-top:-5px; -} - -.modaldialog label, -.modaldialog h1 { - color:#222222; - font-size:125%; - font-weight:bold; + margin:10px 10px; + font-size:1.2em; + line-height:1.1; + color:#333; } +#connectionboxinner .disconnected {display:none;} +.cboxdisconnected #connectionboxinner .disconnected {display:block;} -.modaldialog th { - vertical-align: top; - text-align: left; -} +#connectionboxinner .reconnecting {color:#555; display:none; font-size:1.6em; margin-top:20px; text-align:center;} +.cboxreconnecting #connectionboxinner .reconnecting {display:block;} -.nonprouser #sharebox-stripe { display: none; } -.sharebox-url { - width: 440px; height: 18px; - text-align: left; - font-size: 1.3em; - line-height: 18px; - padding: 2px; -} -#sharebox-send { - float: right; - background-repeat: no-repeat; - background-image: url(static/img/sharebox4.gif); - display: block; - width: 87px; height: 22px; - background-position: -383px -289px; -} +.sharebox-url {height:18px; font-size:1.3em; line-height:18px; padding:2px; text-align:left; width:440px;} +#sharebox-send {background:url(static/img/sharebox4.gif) -383px -289px no-repeat; display:block; float:right; height:22px; width:87px;} -#viewbarcontents { display: none; } -#viewzoomtitle { - position: absolute; left: 10px; top: 4px; height: 20px; line-height: 20px; - width: auto; -} -#viewzoommenu { - width: 65px; -} +#viewbarcontents {display:none;} #bottomarea { - height: 28px; - overflow: hidden; - position: absolute; - height: 28px; - bottom: 0px; - left: 0px; - right: 0px; - font-size: 1.2em; - color: #444; + height:28px; + overflow:hidden; + position:absolute; + height:28px; + bottom:0; + left:0; + right:0; + font-size:1.2em; + color:#444; } -#widthprefcheck { position: absolute; - background-image: url(static/img/layoutbuttons.gif); - background-repeat: no-repeat; cursor: pointer; - width: 86px; height: 20px; top: 4px; right: 2px; } -.widthprefunchecked { background-position: -1px -1px; } -.widthprefchecked { background-position: -1px -23px; } -#sidebarcheck { position: absolute; - background-image: url(static/img/layoutbuttons.gif); - background-repeat: no-repeat; cursor: pointer; - width: 86px; height: 20px; top: 4px; right: 90px; } -.sidebarunchecked { background-position: -1px -45px; } -.sidebarchecked { background-position: -1px -67px; } -#feedbackbutton { display: block; position: absolute; width: 68px; - height: 0; padding-top: 17px; overflow: hidden; - background: url(static/img/bottomareagfx.gif); - top: 5px; right: 220px; +#widthprefcheck { + background-image:url(static/img/layoutbuttons.gif); + background-repeat:no-repeat; + cursor:pointer; + height:20px; + position:absolute; + right:2px; + top:4px; + width:86px; +} +.widthprefunchecked {background-position:-1px -1px;} +.widthprefchecked {background-position:-1px -23px;} +#sidebarcheck { + background-image:url(static/img/layoutbuttons.gif); + background-repeat:no-repeat; + cursor:pointer; + height:20px; + position:absolute; + right:90px; + top:4px; + width:86px; } +.sidebarunchecked {background-position:-1px -45px;} +.sidebarchecked {background-position:-1px -67px;} #modaloverlay { - z-index: 500; display: none; - background-repeat: repeat-both; - width: 100%; position: absolute; - height: 100%; left: 0; top: 0; -} - -* html #modaloverlay { /* for IE 6+ */ - opacity: 1; /* in case this is looked at */ - background-image: none; - background-repeat: no-repeat; - /* scale the image */ -} - -a#topbarmaximize { - float: right; - width: 16px; - height: 16px; - margin-right:-143px; - margin-top:4px; - background: url(static/img/maximize_normal.png); -} - -.maximized a#topbarmaximize { - background: url(static/img/maximize_maximized.png); -} - -#editbarinner h1 { - line-height: 29px; - font-size: 16px; - padding-left: 6pt; - margin-top: 0; -} - -#editbarinner h1 a { - font-size: 12px; -} - -.bigbutton { - display: block; - background-color: #a3bde0; - color: #555555; - border-style: solid; - border-width: 2px; - border-left-color: #d6e2f1; - border-right-color: #86aee1; - border-top-color: #d6e2f1; - border-bottom-color: #86aee1; - margin: 10pt; - text-align: center; - text-decoration: none; - padding: 50pt; - font-size: 20pt; - border-radius: 3pt; -} - -.modaldialog .bigbutton { - padding-left: 0; - padding-right: 0; - width: 100%; -} - -} - - -ul#colorpickerswatches -{ - padding-left: 3px; - padding-top: 5px; -} - -ul#colorpickerswatches li -{ - border: 1px solid #ccc; - width: 14px; - height: 14px; - overflow: hidden; - margin: 3px 6px; - padding: 0px; -} - -ul#colorpickerswatches li:hover -{ - border: 1px solid #000; - cursor: pointer; + background-repeat:repeat; + display:none; + height:100%; + left:0; + position:absolute; + top:0; + width:100%; + z-index:500; } +/* to be removed ############################################################## */ +/*// the top bar is currently hidden! +#docbar {background-color:#fbfbfb; height:25px; margin-top:6px; position:relative; zoom:1;} +.docbarbutton {border-left:1px solid #ccc; padding-top:2px 4px; white-space:nowrap;} +.docbarbutton.highlight {background-color:#fef2bd; border:1px solid #ccc; border-right:0;} -#chatbox -{ +#docbarpadtitle { + color:#444; + font-size:1.6em; + font-weight:400; + height:22px; + left:9px; + line-height:22px; + margin-left:2px; + overflow:hidden; position:absolute; - bottom:0px; - right: 20px; - width: 180px; - height: 200px; - z-index: 400; - background-color:#f7f7f7; - border-left: 1px solid #999; - border-right: 1px solid #999; - border-top: 1px solid #999; - padding: 3px; - padding-bottom: 10px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; + text-overflow:ellipsis; + top:2px; + white-space:nowrap; + width:280px; +} +.docbar-public #docbarpadtitle {background:url(static/img/public.gif) 0 50% no-repeat; padding-left:22px;} + +#docbarrenamelink {display:none; font-size:1.1em; position:absolute; top:6px;} +#docbarrenamelink A {color:#999;} +#docbarrenamelink A:hover {color:#48d;} +#padtitlebuttons { + background:url(static/img/ok_or_cancel.gif) 0 0 no-repeat; display:none; -} - -#chattext -{ - background-color: white; - border: 1px solid white; - overflow-y:scroll; - font-size: 12px; + height:17px; + left:170px; position:absolute; - right:0px; - left:0px; - top:25px; - bottom:25px; - z-index:1002; -} - -#chattext p -{ - padding: 3px; - overflow-x: hidden; -} - -#chatinputbox -{ - padding: 3px 2px; - position: absolute; - bottom:0px; - right:0px; - left:3px; -} - -#chatlabel -{ - font-size:13px; - line-height:16px; - font-weight:bold; - color:#555; - text-decoration: none; - position: relative; - bottom: 3px; -} - -#chatinput -{ - border: 1px solid #BBBBBB; - width: 100%; - float:right; + top:4px; + width:74px; + zoom:1; } - -#chaticon -{ - z-index: 400; - position: fixed; - bottom: 0px; - right: 20px; - padding: 5px; - border-left: 1px solid #999; - border-right: 1px solid #999; - border-top: 1px solid #999; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - background-color:#fff; - cursor: pointer; -} - -#chaticon a -{ - text-decoration: none; -} - -#chatcounter -{ - color:#555; - font-size:9px; - position:relative; - bottom: 2px; -} - -#titlebar -{ - line-height:16px; - font-weight:bold; - color:#555; - position: relative; - bottom: 2px; -} - -#titlelabel -{ - font-size:13px; - margin:4px 0 0 4px; +#padtitlesave { + display:block; + height:0; + left:0; + overflow:hidden; + padding-top:17px; position:absolute; -} - -#titlecross -{ - font-size:25px; - float:right; - text-align: right; - text-decoration: none; - cursor: pointer; - color:#555; -} - -.time -{ - float:right; - color:#333; - font-style:italic; - font-size: 10px; - margin-left: 3px; - margin-right: 3px; - margin-top:2px; -} - - -/* resizable stuff for chat */ -.ui-resizable { -position: relative; -} -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - z-index: 99999; - display: block; - -} - -.ui-resizable-nw { - background-image: url("../../static/img/etherpad_lite_icons.png"); - background-position: 0 -416px; - background-repeat: no-repeat; - background-size: 100% auto; - cursor: nw-resize; - height: 17px; - left: 3px; - top: 3px; - width: 17px; -} - -.ui-resizable-ne -{ - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} - -.exporttype{ - margin-top: 2px; - background-repeat:no-repeat; - padding-left:25px; - background-image: url("../../static/img/etherpad_lite_icons.png"); - color:#fff; - text-decoration:none; + top:0; + width:23px; } - -#importexportline{ - border-left: 1px solid #fff; - height: 190px; +#padtitlecancel { + display:block; + height:0; + overflow:hidden; + padding-top:17px; position:absolute; - width:0px; - left:260px; - opacity:.8; -} - -.impexpbutton{ - background-image: linear-gradient(center top , #EEEEEE, white 20%, white 20%); - padding:3px; -} - -#exporthtml{ - background-position: 0px -299px; -} - -#exportplain{ - background-position: 0px -395px; -} - -#exportword{ - background-position: 0px -275px; -} - -#exportpdf{ - background-position: 0px -371px; -} - -#exportopen{ - background-position: 0px -347px; -} - -#exportwordle{ - background-position: 0px -323px; -} - -#exportdokuwiki{ - background-position: 0px -459px; -} - -#importstatusball{ - display:none; -} - -#importarrow{ - display:none; -} - -#importmessagesuccess{ - display:none; -} - -#importsubmitinput{ - height:25px; - width:85px; - margin-top:12px; -} - -#importstatusball{ - height:50px; -} - -#chatthrob{ -display:none; -position:absolute; -bottom:40px; -font-size:14px; -width:150px; -height:40px; -right: 20px; -z-index: 200; -background-color: #000; -color: white; -background-color: rgb(0,0,0); -background-color: rgba(0,0,0,0.7); -padding: 10px; -border-radius: 6px; -opacity:.8; -} - -.buttonicon{ -width:16px; -height:16px; -background-image:url('../../static/img/etherpad_lite_icons.png'); -background-repeat: no-repeat; -margin-left: 1px; -margin-top: 1px; -} -.buttonicon-bold { - background-position: 0px -116px; -} -.buttonicon-italic { - background-position: 0px 0px; -} -.buttonicon-underline { - background-position: 0px -236px; -} -.buttonicon-strikethrough { - background-position: 0px -200px; -} -.buttonicon-insertorderedlist { - background-position: 0px -477px -} -.buttonicon-insertunorderedlist { - background-position: 0px -34px; -} -.buttonicon-indent { - background-position: 0px -52px; -} -.buttonicon-outdent { - background-position: 0px -134px; -} -.buttonicon-undo { - background-position: 0px -255px; -} -.buttonicon-redo { - background-position :0px -166px; -} -.buttonicon-clearauthorship { - background-position: 0px -86px; -} -.buttonicon-settings { - background-position: 0px -436px; -} -.buttonicon-import_export { - background-position: 0px -68px; -} -.buttonicon-embed { - background-position: 0px -18px; -} -.buttonicon-history { - background-position: 0px -218px; -} -.buttonicon-chat { - background-position: 0px -102px; - display: inline-block; -} -.buttonicon-showusers { - background-position: 0px -183px; - display: inline-block; -} - -#usericon -{ -width:33px !important; + right:0; + top:0; + width:35px; } - -#focusprotector -{ - z-index: 100; - position: absolute; - bottom: 0px; - top: 0px; - left: 0px; - right: 0px; - background-color: white; - opacity:0.01; +#padtitleedit { + background:#fff; + border: 1px solid #c3c3c3; + border-color:#c3c3c3 #e6e6e6 #e6e6e6 #c3c3c3; display:none; + font-size:1.4em; + height:15px; + left:5px; + padding:2px; + position:absolute; + top:2px; + width:150px; } - -#online_count{ - color: #999; -} - -#qr_center { - margin: 10px 10px auto 0; - text-align: center; -} - -#embedreadonlyqr { - box-shadow: 0 0 10px #000; - border-radius: 3px; - transition: all .2s ease-in-out; -} - -#embedreadonlyqr:hover { - cursor: none; - transform: scale(1.5); -} - -.rtl{ - direction:RTL; -} - -#chattext p { - word-wrap: break-word; -} - -/* fix for misaligned labels */ -label { - position: relative; - bottom: 1px; -} - -.right { - float:right; -} - -.popup { - font-size: 14px; - width: 450px; - z-index: 500; - padding: 10px; - border-radius: 6px; - background: #222; - background: rgba(0,0,0,.7); - background: linear-gradient(rgba(0,0,0,.6), rgba(0,0,0,.7) 35px, rgba(0,0,0,.6)); - box-shadow: 0 0 8px #888; - color: #fff; -} - -.popup input[type=text] { - width: 100%; - padding: 5px; - box-sizing: border-box; - display:block; - margin-top: 10px; -} - -.popup a { - text-decoration: none; -} - -.popup h1 { - font-size: 18px; -} -.popup h2 { - font-size: 15px; -} -.popup p { - margin: 5px 0; -} - -.left_popup { - float: left; - width: 50%; -} - -.right_popup { - float: left; - width: 50%; -} - -#settingsmenu, #importexport, #embed { - position: absolute; - top: 55px; - right: 20px; - display: none; -} - -.note { - color: #ddd; - font-size: 11px; - font-weight: bold; -} - -.selected { - background: #eee !important; - background: linear-gradient(#EEE, #F0F0F0) !important; -} - -.stickyChat { - background-color: #f1f1f1 !important; - right: 0px !important; - top: 36px; - border-radius: 0px !important; - height: auto !important; - border: none !important; - border-left: 1px solid #ccc !important; - width: 185px !important; -} - -@media screen and (max-width: 960px) { - .modaldialog { - position: relative; - margin: 0 auto; - width: 80%; - top: 40px; - left: 0; - } -} - -@media screen and (max-width: 600px) { - #editbar ul li { - padding: 4px 1px; - } -} - -@media only screen and (min-device-width: 320px) and (max-device-width: 720px) { - #editbar ul li { - padding: 4px 3px; - } - #users { - right: 4px; - } - #mycolorpicker { - left: -72px; /* #mycolorpicker:width - #users:width */ - } - #editorcontainer { - margin-bottom: 33px; - } - #editbar ul#menu_right { - background: #f7f7f7; - background: linear-gradient(#f7f7f7, #f1f1f1 80%); - width: 100%; - overflow: hidden; - height: 32px; - position: fixed; - bottom: 0; - border-top: 1px solid #ccc; - } - #editbar ul#menu_right li:last-child { - height: 24px; - border-radius: 0; - margin-top: 0; - border: 0; - float: right; - } - #chaticon { - bottom: 0; - right: 55px; - border-right: none; - border-radius: 0; - background: #f7f7f7; - background: linear-gradient(#f7f7f7, #f1f1f1 80%); - border: 0; - } - #chatbox { - bottom: 32px; - right: 0; - border-top-right-radius: 0; - border-right: none; - } - #editbar ul li a span { - top: -3px; - } - #usericonback { - margin-top: 4px; - } - #qrcode { - display: none; - } - #editbar ul#menu_right li:not(:last-child) { - display: block; - } - #editbar ul#menu_right > li { - background: none; - border: none; - margin-top: 4px; - padding: 4px 8px; - } - .selected { - background: none !important; - } - #timesliderlink { - display: none !important; - } - .popup { - border-radius: 0; - box-sizing: border-box; - width: 100%; - } - #settingsmenu, #importexport, #embed { - left: 0; - top: 0; - bottom: 33px; - right: 0; - } - .separator { - display: none; - } -} +#topbarmaximize {background:url(../../static/img/editbar-sprite.png) 0 -420px no-repeat; float:right; height:20; margin-right:-143px; margin-top:4px; width:20px;} +.maximized #topbarmaximize {background-position:-40px -420px;} +*/ \ No newline at end of file diff --git a/static/css/timeslider.css b/static/css/timeslider.css index 926c8012316..4b1a1c655db 100644 --- a/static/css/timeslider.css +++ b/static/css/timeslider.css @@ -1,106 +1,51 @@ -#editorcontainerbox {overflow:auto; top:40px;} - -#padcontent {font-size:12px; padding:10px;} - -#timeslider-wrapper {left:0; position:relative; right:0; top:0;} -#timeslider-left {background-image:url(../../static/img/timeslider_left.png); height:63px; left:0; position:absolute; width:134px;} -#timeslider-right {background-image:url(../../static/img/timeslider_right.png); height:63px; position:absolute; right:0; top:0; width:155px;} -#timeslider {background-image:url(../../static/img/timeslider_background.png); height:63px; margin:0 9px;} -#timeslider #timeslider-slider {height:61px; left:0; position:absolute; top:1px; width:100%;} -#ui-slider-handle { - -khtml-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - -webkit-user-select:none; - background-image:url(../../static/img/crushed_current_location.png); - cursor:pointer; - height:61px; - left:0; - position:absolute; - top:0; - user-select:none; - width:13px; -} -#ui-slider-bar { - -khtml-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - -webkit-user-select:none; - cursor:pointer; - height:35px; - margin-left:5px; - margin-right:148px; - position:relative; - top:20px; - user-select:none; -} - -#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:29px;} - -#timeslider .star { - background-image:url(../../static/img/star.png); - cursor:pointer; - height:16px; - position:absolute; - top:40px; - width:15px; -} - -#timeslider #timer { - color:#fff; - font-family:Arial, sans-serif; - font-size:11px; - left:7px; - position:absolute; - text-align:center; - top:9px; - width:122px; -} - -.topbarcenter, #docbar {display:none;} -#padmain {top:30px;} -#editbarright {float:right;} -#returnbutton {color:#222; font-size:16px; line-height:29px; margin-top:0; padding-right:6px;} -#importexport {top:118px;} -#importexport .popup {width:185px;} - -/* lists */ -.list-bullet2, .list-indent2, .list-number2 {margin-left:3em;} -.list-bullet3, .list-indent3, .list-number3 {margin-left:4.5em;} -.list-bullet4, .list-indent4, .list-number4 {margin-left:6em;} -.list-bullet5, .list-indent5, .list-number5 {margin-left:7.5em;} -.list-bullet6, .list-indent6, .list-number6 {margin-left:9em;} -.list-bullet7, .list-indent7, .list-number7 {margin-left:10.5em;} -.list-bullet8, .list-indent8, .list-number8 {margin-left:12em;} - -/* unordered lists */ -UL {list-style-type:disc; margin-left:1.5em;} -UL UL {margin-left:0 !important;} - -.list-bullet2, .list-bullet5, .list-bullet8 {list-style-type:circle;} -.list-bullet3, .list-bullet6 {list-style-type:square;} - -.list-indent1, .list-indent2, .list-indent3, .list-indent5, .list-indent5, .list-indent6, .list-indent7, .list-indent8 {list-style-type:none;} - -/* ordered lists */ -OL {list-style-type:decimal; margin-left:1.5em;} -.list-number2, .list-number5, .list-number8 {list-style-type:lower-latin;} -.list-number3, .list-number6 {list-style-type:lower-roman;} - - - -/* IE 6/7 fixes ################################################################ */ -* HTML #ui-slider-handle {background-image:url(../../static/img/current_location.gif);} -* HTML #timeslider .star {background-image:url(../../static/img/star.gif);} -* HTML #playpause_button_icon {background-image:url(../../static/img/play.gif);} -* HTML .pause#playpause_button_icon {background-image:url(../../static/img/pause.gif);} \ No newline at end of file +/* adjust page layout to show timeslider */ +.maximized #padpage {left:8px; margin-left:0; right:8px; width:auto;} +.fullwidth #padpage {margin-left:6px; margin-right:6px; width:auto;} +.squish1width #padpage {width:800px;} +.squish2width #padpage {width:700px;} + +#padmain {top:59px;} +#editorcontainerbox {overflow:auto; top:34px;} /* #FIXME: the HTML structure is totally destroyed! */ + +/* timeslider sprite */ +#ui-slider-handle, #playpause_button, #steppers A, #timeslider .star {background:url(../../static/img/timeslider-sprite.png) 0 0 no-repeat;} + +#timeslider {background:#f5f5f5; border-bottom:1px solid #d5d5d5; padding:6px 0; position:absolute; top:0; width:100%;} +#timer {background-color:#aaa; border-radius:3px; color:#fff; font-family:Arial, sans-serif; font-size:11px; left:6px; min-width:101px; padding:2px 4px 1px; position:absolute; top:7px;} +#timeslider-wrapper {float:left; width:100%;} +#timeslider-slider {margin:0 164px 0 6px;} +#timeslider-slider DIV {cursor:pointer;} +#ui-slider-handle {background-position:-142px 0; height:22px; left:0; position:absolute; top:30px; width:13px;} +#ui-slider-bar {background-color:#ddd; height:6px; margin-top:40px;} +#ui-slider-bar:hover {background-color:#00b7ed;} +#timeslider .star {background-position:-80px 0; cursor:pointer; height:16px; position:absolute; top:40px; width:16px;} +#timeslider .star:hover {background-position:-100px 0;} + +#playpause_button {background-color:#ddd; background-position:-60px 0; border-radius:30px; float:right; height:46px; width:46px;} +#playpause_button:hover {background-position:-60px -40px;} +#playpause_button.pause {background-position:-100px 0;} +#playpause_button.pause:hover {background-position:-100px -40px;} + +#steppers {float:right; margin:0 35px 0 10px; width:60px;} +#steppers A {border:1px solid #d5d5d5; box-shadow:0 1px 0 #fff; float:left; height:20px; margin:0 0 4px; width:28px;} +#steppers .group-start {border-radius:3px 0 0 3px;} +#steppers .group-end {border-radius:0 3px 3px 0; border-width:1px 1px 1px 0; width:29px;} + +A#leftstar, #leftstar.inactive:hover {background-position:0 0;} +A#rightstar, #rightstar.inactive:hover {background-position:-30px 0;} +A#leftstep, #leftstep.inactive:hover {background-position:0 -20px;} +A#rightstep, #rightstep.inactive:hover {background-position:-30px -20px;} +A#leftstar:hover {background-position:0 -40px;} +A#rightstar:hover {background-position:-30px -40px;} +A#leftstep:hover {background-position:0 -60px;} +A#rightstep:hover {background-position:-30px -60px;} + +.topbarcenter, #docbar {display:none;} /* hide document title etc. */ +#editbarinner H1 {color:#999; font-size:16px; line-height:29px; margin-top:0; padding-left:6px;} +#editbarinner H1 A {font-size:12px;} +#revision_label {background-color:#aaa; border-radius:3px; color:#fff; padding:2px 5px;} + +#editbarright #returnbutton {background:0 none; border:0 none; box-shadow:none; padding:4px 6px; width:auto;} +#returnbutton A {color:#999; font-size:12px; line-height:20px;} + +#importexport.popup {top:95px; width:140px;} \ No newline at end of file diff --git a/static/img/ajax-loader.gif b/static/img/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe2cd23b3a3c017ae6acfd291135a998e2f8ee74 GIT binary patch literal 3208 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 C|Ftdv literal 0 HcmV?d00001 diff --git a/static/img/backgrad.gif b/static/img/backgrad.gif deleted file mode 100644 index 8fee1a5b721cb0c0b0814d75dcc6798d373556dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmcJKTTfB}0Dw-FmOdbiu{ za=9E1hsWaqLC|0@Xti1dL2Nc#AQ15T{SXAn)K7z%}yN+s|gIJOb{ubQ##?I&RO z7OtrxHzTP9?0+ENUqe<8J;bwavdzPfq2$U*C#SODR1Z=Xz6;-%po^mCg=}khz3n9u zj&4;|*N|$T0`;$6H#9aiziDZ0t510QuCuHA{fEv&ePjytBaPnwX<)E#2ZK4x8ewy| zUwC{*oKPellSs$KNmJ8bWi#Kt&w_Hr)GkmI{K;}Ig z$feJ=9L;W+0jd4+jx++J=t(;X>N-=Z=*{B|z&%;T$IWuyAY!E8NUMAte@H{m?MN?H z@IMo1@icrNUcfLg346=z3IWr^zAbA=&c9w>$1Bq@ilI@KRak+MAK`=}c1dLt<8 diff --git a/static/img/crushed_button_depressed.png b/static/img/crushed_button_depressed.png deleted file mode 100644 index d75dcce289051293d69a9be79874492ef7959be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4134 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 diff --git a/static/img/crushed_button_undepressed.png b/static/img/crushed_button_undepressed.png deleted file mode 100644 index d86e3f39743bc7b5334c58442a000bd39f772b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4166 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 QNB{r;07*qoM6N<$f)X$A_5c6? diff --git a/static/img/crushed_current_location.png b/static/img/crushed_current_location.png deleted file mode 100644 index 76e08359e3cdef6b81bf1799de7d9d1333ced9e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmV4Tx07%D;lubw!VHn5%vyBL$L1eZG#n8bdR3?p50&~}|Y-L^6T}=^UoqczA za-5xJcGnb%5TaXI$LL~7bg+mH;h~^Y9U=tH>L5XMvIruGP=a!lflfp+G*2MVV=={I+u3*z&b%+znSNh? z@6wl(2Or&d>ig(^5$5psQ?64%fTIpj5x4n-$s;zOHF-RxrHF@3mJ*RDu|{00hk|Xy zcZv7J9X#UTC^ICWq?I@+X*%h+Du|mhQry&>Cl=MHtP-!9_NXC^Q4G!N`f2XMZZqWr zS`Gob-V|*^1~C5sI8a@*)wqHE1HeLK(Y7A6_QO>!8nMO(%fyv=si#lb?0Pj&dK=ih zmCgRTm(6b8ryA79OGQfSncR*z?k!;VYd@2IFi$(NJ(G2sfLYq(z;3{I4Y>0eIQkga z_Y4S>1EFTPt|EV>*k!9uTT+|Q<#-|`G>GCU!9%Z>3EiqxUn@iuMX+3kpfiK%85XU_ zn39%q_4d+L#?){h-Dy786=rngn46A9+G&@lC;l2`?H%TOBz_o^JG;#V(zP1XJHs|} z$K+IZ$Yxi+s`z_y>{dtoy*W)@OL>ENeIwJ?k+)xroC^?F5eG+;J~O70a$6@8p#hsY zWirv`&+$7w9W?76p_n;MvHtVao9h(@p@2b#O1~-u1knXA>YzbK5;5|~6d{w9Sur}X zfzdxkDhN1OApaWWtXVmikfv-is~=uJrfUldg7`uFF0P2P;+*(xrYc=i^i1m)WNGo{ z57IR&=XG=5Tu-*XM0GvnRS+lZSYal^(W#@mm^xEcR5EL@>;4VLl+0174kMP*s8uOr z`3(B?II8WmJ&Juj_1s;owZbn9FPFWZ+On(Uwy9WQs;$q(IA=cN5A(6$#NkC3M6+2gxWKJ~}`KYMUz8EMX|Kk@(Bqq`;~X>zMQMY^9n>Q4V> f7zLwX6p#V{MAqJ+{L9Q100000NkvXXu0mjf5AW6a diff --git a/static/img/editbar-sprite.png b/static/img/editbar-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..0e397226729c1f27220da690ab844fd9cd1a1537 GIT binary patch literal 9628 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 diff --git a/static/img/fileicons.gif b/static/img/fileicons.gif deleted file mode 100644 index c03b6031a62780479212fe50240ccb60dd3750b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1649 zcmV-%29EhhNk%w1VG#hQ0LFg+N=i!c@$svxtN8f%?Ck87m6fH(lWA#bk>88L!^5H0 zkZhRMh{M*(%FAi5&)DhJ@UW|TdV1ENII*#@+}zw~iqb`iz>v zf~|G_{{L2K$m;6q^z-xg+Sq8atmy3bRMTo|S1^Qxgj#dVR;1GS>F8CtoVe@D)85Wm zebCj_)SjN7e3;j!+1Po*$&9wKinoi9rQ7nuzvO&%eWq>QR88e;V~mZB=jZ3( zdUlW1tH+_Iwc_h`Z02WOZJt~9_xfah(8$`t?eF;7-}3tU`uqI;&e72{G&SI;IqlGZ z`1A9#zpu-QhV7!9-oAgUgfr;PKU`c~`}_WqawOU~EzCkajOU@7!GiFCb+Eza-*Ii` zUQ=L%(ERu8XOqyCkY>5DU+(Pa!j(Fhl8RTV-r>@!$j8Tg#dN>dy29eFdU0Rt+`#nC z%lG;GPL;ljjgelWhk&eXK{ywRxouLVWc&O3Zf41egav$kkdcrRhI|8iewmsB2b6?;dmtO50RbO=Je`6I z3uLThWEB-+ryC%u3v)}mydy>gntpwM3rjF$H9s&lEiC~AA3VauORQgFH83qF8>PU* zWX2UgEk8yzCj+(t(-lkPMn)$_NheC`8|_#XEkWc#NIdKrKyaFv4n}?yF*hQhl6wQD z8EJ^5V#OpL9zL9Q;)Dl}9zurPLlV<4L4AU$)O7NXrIo=3@EPPtlFdGR3NYHqv!~CW zK!f(Id9#lvLY6S8a!+>;I0au2I3<&N3@ivWv0xl~Y$RNSE3x{>nh$zS)1BHwXD)bm2 zg0HZG3l7wvut3L-V}cR$`e-8pg__bnhyZ~&?E!}_pdEsgf%-)g+#e|g10Z4jtpp%_0~V;#J)<<32?!eO@WKuh5MZH&gT(hj0X$HU zKmi3%AYuV8pyY=J5inr_00$Hh!2tl6kU#_~?qC8F8vvjI6A1_azy=AJprQbLxc&&h zl1$n-lS>0o5aR>_I1)ht0!&cA0fN*t!4(Ja!N&_o@^Qcw6ojYdnryD=h?sD~SwIJc zoVQd?bPmFY5);%|ihFqKNk9{XHc(0}8}M-y9|V+PMhOjcbBZQUx^#vWRzRxGGXhr1 zM*?ZM@InL-66Wa(9dtlJ6DE|(&XY=9;XY0?k_FFvJZIq}JgL zJwPyp4I%WP!wnY?D22|Mkn~UrP-Hud4Lxijhk?p12SyH3(5set^HOK;9{?A%oxg0i z-EZ2Gln13!F%|3-dkRklU%jZ&SBrfd50HQc6HqBYFbV#*smKZX!N%Z(8~zQ)DlN!P z<4iR0IOH1S(|F~mjqHL8nQP7l8$zq7iPYGRY$64t$G)8EVoO&xOlQMw)7ozL?)!JJ zColmJFT4N*5Nikk2O4P(AOH|?M4!U+)Mt?c8fc)s#`ZuIF2D@Z2_#_s6gj~0#|tR{ zA$*qKi+_Fj1N v0ZdU3Bme>lvQU7+4Wfq=KpzEOu){IBpb!E`00punN5K){iN9k+AOHY6T+#W% diff --git a/static/img/leftarrow.png b/static/img/leftarrow.png deleted file mode 100644 index 1bec1288271826468e736f7b62acda6d0f622efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 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 U&g~@{0(_l^4=OOYFfdpH0MXt-F#rGn diff --git a/static/img/roundcorner_right.gif b/static/img/roundcorner_right.gif deleted file mode 100644 index 97acfbf2e6b0d7a6876999603877bbdb61736e7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 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 diff --git a/static/img/timeslider-sprite.png b/static/img/timeslider-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d0819b15ed6a7b936f9ec8390ad8aa880f09f7 GIT binary patch literal 2139 zcmZWrcUY5G7Y`sZ3Njoli=$sD&LGr?l`V*aB}*$<5J&;xMXXRjmP`eTM5f3R3bMm6 zWIzNp3?md|29pL_Aq9aXB+Mj)^wNAEPoL-eJgynl>+O~o#0IH(g?A-9^!Q8$B?jFKOte}K6kv32QNXle36dGTRstY z$w(s@O!AR~jk6UX!*I-;oSfX;+^0{U=I7^&L?U1Td+`R?^YZex?I|fK+k3zPOmHe@ zf*{*RV%l~bF=3mzeJXYl2LbE9gM+-l^8Yda9ZIQuH`#192)Mq!E=ypgr>7Sd7K&*-Y{Bg8tXO9kTQD;- zBmNZM&ugZD!C(MkAlgm>Q?8YzOk}ANS?cZVqohT>u0?|`4x*cLv6t(F8g)XAIXxM3 zelq6zWaQe1rR$j^H!=op5JWdxMQ#~=ZdpTat)iP*gPudn;U8CGX{(POJpz3JnzOUB zK{}uo^bynxiUQRY6%~P6!2Op@ua}jTRaRDly9Jj}S65eGU;mOWdO0BiSB;qvwY0Pl z2!yt_wvLVt5{cB))6?7AOQBH4$Hzfa$QcIV`C!@hr@3H zB;QKh-`_tlFfcSUG%^AtP$+adeR_IsZf<^lp3PqTFT|Z#2hHd6!B_}|M!A39fWdZj zUa~ZI4yQ7yynDNm`+GR{XUp~wKB)wK{l4BT``r7RRiEBO>;7>Sjg{AZ&d5AJ%{`uH za@e)zlJ{wsPAp0%4N@u9O`?A4m@*Oc{hZ7DnH%!^!Yc2UhmCIu??+#L@qQ_#i08S@ zewgE`X_nq9(Go44nwmiy^yh7ZACwck4s(|F-WA$g8A&p-yQXGVFsaz#?({5$qP@c< z_;9N|t~X~=0!oY{`PaLB3>#{P2MRaqx;#g{D|Gg~{1(bZ+9gxpYd`L&LpIKJ+?;|E ztZj^6`1ibctR84$mi!F+%CvBA(&(&|<{es93sp8wVWl^2@FdpOs9pm~qV%N(Bq_f` z!R_o5vkvEm=AAyWYf){&P9sQ-e+X6DWOVdxD$s?pZ;B|+vMgc{=7ilS;tb`*K9Xf}_58U6bhKU4>sGgo z<_cc0VH7^%3mc#CfSWLXqcC{6V<9ra1d8u+}())WAJKWbE4p`X?$M9INEo{mbm8y6Fo{`-?PHfi;g$jSkK<27p52}H`4?MU9~pIGAi0engd{?LG?J~=&*?{u zn=MJ``veAf;Qgmfx@luCUFShhV?LfyWog7_YCyc1zSMiXf4cuTjP2c+nu3Vkl)ifR z(4|t&J;|-I-(G>W`@T&fSX+wynZ<`jHf#oRZSf_o*v4+;K)a z?Q%LcX(15F_#Ueaj1^Yq_+zMR{qTaLO35UdV`tu2CNm-=$~ge#-a-pqfuXeV0;L*S_e88S9kKc`YYrQ|LTrX6qfU{7wCDzy zhz9i;pO!WzO)2^955Q0k8Q|o(SoWkgED{PCIOxCIO*(>h2fmj03eoC|YT?w!6PfdT zf0OZmUn6%$6hzg&zE1w;5G}T3$T)#$+wS5yxmPicxy8kiaq^4?8C2ZX2R3I<*vQ%! zRu!3uW|!d50Tj00Xh0D2X6mz^caMe3t1vc8(dxH4bg|rCMNJciU+Bu<5t5AgX{{PJ z=z*8~Tpy-YQn%Y9*r}X;eDOR1U*VEm5mV)h^(#=6K2g&;J`&P&TV)T1@Y%sIs>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B?TXz$e7@-@kwV|Nl=*OFMJs%=ho#xni=90i|p`T^vIy zZY3q8B{VuKNGmi;efqJv}@+I#ZO?)Y#I} dG@OLk8TK(UUcVv{dJ$+4gQu&X%Q~loCIDe5JEZ^s diff --git a/static/img/timeslider_left.png b/static/img/timeslider_left.png deleted file mode 100644 index 48a9b0e1797c61874ac301fc2c518c3bc575b693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmeAS@N?(olHy`uVBq!ia0vp^Z9r_#!OXzGn3`J90pv)QxJHx&=ckpFCl;kLIHu$$ zr7C#lCZ?wbr6#6S7M@JC0V=8v@CkAK_wV22$&=I4(&FRemn~cN_3PJp^X7f{@L|P@ z6+eIeym8~k^5x6duV4TB_wQS`Zmn9iYQu&NFJ8P@vSi8m^XIQ$zkcrAxuZvqo;Y#h z-Me=`e*F0L>(|AL7oRva#N!CE=vZ+BMQ9>-DJ-emF6f(JQGlD$`rR^;80*oEOlad!TIIG!Gig# ztoRdET_Tov$*Qt2Fk3rrXJ8QkQqCN+7p~K5(f6@%(Bfc~E)5YVdwC(y(IQTx-?Gw4 zi-D=5F?Le$Tqg&YX$t3fm~IC1)+;T!!(*y7>!6myKEYKXJi%83jaTHer84BOF}FI* z;CkuY96QBn{R$=)fo8V(T1V3~PIv{q5!cjeX}6ksCgHJy^=s}<=d%wMEZ|6LoVCy_ zi|y)}2SA3`K0&56AwJ2A(|TqZ2Ax^3rB2c(Eg#0phTQN0!Mlk<>LSn-SP!miR^E*q3WToHk{**(JN!lZD$1S`>R? z+D@&l+1SnKEAjpQt^ILddQ%T}EZ%H9XCrf>@wTJIrPkfRNM-PJ^>bP0l+XkKhssVM diff --git a/static/img/timeslider_right.png b/static/img/timeslider_right.png deleted file mode 100644 index 1a1b2685b24a2e620a33d95f45ff6fe6867d20c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^vw_&2gPDPWal2{N1t3SV#5JNMI6tkVJh3R1!7(L2 zDOJHUH!(dmC^a#qvhZZ84N#F^fKQ0)@87@w{{8#o$B&;sf2O6SefaR z@80?I=dWMC{`KqEix)4xeEIU%uV0@(e}4Dw-K|@<&Ye5=@87>ur%v6zef$6a|7Xse z`TqSokg;8a>pak8sgfYSU?3MeU=UGaxCL~px~Gd{NX4xrf#WP|c!VMtd|8fmhH?rx z@I>4>>98b?O(|C`il@7hfwAT4#b&R$7Nu7^yMwRR0{OaihK&6x6Q30dt@Nu2k)3;` zbMn%@nSSq***O%FE^8V#%zLsC?!d<{lIHwaQP_OgqVUgD0pZSLhDJs~$2Ddx zu`bkNit}t>ShTFLX;R1+ZQ;cnq0W8%yFMCZ-CB{kcv_bUT3g62(&S+u-Lk3y2GiT|Lvn#Y}u76H&*X|u)%QKOlHHA zIfYueyDw~7sCejBh|xM<#$4?UzL|@A&2IfmEVeECIaxfKZJl)PmWyuDYtP0yZoOOo us$!eM0<(?x&oJdLY0Rl}-1@UpUwsi{&#~=IeanCW%i!ti=d#Wzp$PzhYXgh` diff --git a/static/js/broadcast_revisions.js b/static/js/broadcast_revisions.js index 19f3f5ff7d5..b24d27747a7 100644 --- a/static/js/broadcast_revisions.js +++ b/static/js/broadcast_revisions.js @@ -1,5 +1,5 @@ /** - * This code is mostly from the old Etherpad. Please help us to comment this code. + * This code is mostly from the old Etherpad. Please help us to comment this code. * This helps other people to understand this code better and helps them to improve it. * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED */ @@ -23,64 +23,51 @@ // of the document. These revisions are connected together by various // changesets, or deltas, between any two revisions. -function loadBroadcastRevisionsJS() -{ - function Revision(revNum) - { +function loadBroadcastRevisionsJS() { + + function Revision(revNum) { this.rev = revNum; this.changesets = []; } - Revision.prototype.addChangeset = function(destIndex, changeset, timeDelta) - { + Revision.prototype.addChangeset = function(destIndex, changeset, timeDelta) { var changesetWrapper = { - deltaRev: destIndex - this.rev, - deltaTime: timeDelta, - getValue: function() - { - return changeset; - } + deltaRev : destIndex - this.rev, + deltaTime : timeDelta, + getValue : function() {return changeset;} }; this.changesets.push(changesetWrapper); - this.changesets.sort(function(a, b) - { - return (b.deltaRev - a.deltaRev) + this.changesets.sort(function(a, b) { + return (b.deltaRev - a.deltaRev); }); - } + }; revisionInfo = {}; - revisionInfo.addChangeset = function(fromIndex, toIndex, changeset, backChangeset, timeDelta) - { - var startRevision = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex); - var endRevision = revisionInfo[toIndex] || revisionInfo.createNew(toIndex); + revisionInfo.addChangeset = function(fromIndex, toIndex, changeset, backChangeset, timeDelta) { + var startRevision = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex), + endRevision = revisionInfo[toIndex] || revisionInfo.createNew(toIndex); startRevision.addChangeset(toIndex, changeset, timeDelta); endRevision.addChangeset(fromIndex, backChangeset, -1 * timeDelta); - } + }; revisionInfo.latest = clientVars.totalRevs || -1; - revisionInfo.createNew = function(index) - { + revisionInfo.createNew = function(index) { revisionInfo[index] = new Revision(index); if (index > revisionInfo.latest) - { revisionInfo.latest = index; - } - return revisionInfo[index]; - } + }; // assuming that there is a path from fromIndex to toIndex, and that the links // are laid out in a skip-list format - revisionInfo.getPath = function(fromIndex, toIndex) - { - var changesets = []; - var spans = []; - var times = []; - var elem = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex); - if (elem.changesets.length != 0 && fromIndex != toIndex) - { - var reverse = !(fromIndex < toIndex) + revisionInfo.getPath = function(fromIndex, toIndex) { + var changesets = [], + spans = [], + times = [], + elem = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex); + if (elem.changesets.length != 0 && fromIndex != toIndex) { + var reverse = !(fromIndex < toIndex); while (((elem.rev < toIndex) && !reverse) || ((elem.rev > toIndex) && reverse)) { var couldNotContinue = false; @@ -107,22 +94,24 @@ function loadBroadcastRevisionsJS() } } - if (couldNotContinue || oldRev == elem.rev) break; + if (couldNotContinue || oldRev == elem.rev) + break; } } var status = 'partial'; - if (elem.rev == toIndex) status = 'complete'; + if (elem.rev == toIndex) + status = 'complete'; return { - 'fromRev': fromIndex, - 'rev': elem.rev, - 'status': status, - 'changesets': changesets, - 'spans': spans, - 'times': times + 'fromRev' : fromIndex, + 'rev' : elem.rev, + 'status' : status, + 'changesets' : changesets, + 'spans' : spans, + 'times' : times }; - } + }; } exports.loadBroadcastRevisionsJS = loadBroadcastRevisionsJS; diff --git a/static/js/broadcast_slider.js b/static/js/broadcast_slider.js index 0bdc2cabc32..3ae3bfc8f1e 100644 --- a/static/js/broadcast_slider.js +++ b/static/js/broadcast_slider.js @@ -1,5 +1,5 @@ /** - * This code is mostly from the old Etherpad. Please help us to comment this code. + * This code is mostly from the old Etherpad. Please help us to comment this code. * This helps other people to understand this code better and helps them to improve it. * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED */ @@ -20,471 +20,367 @@ * limitations under the License. */ - // These parameters were global, now they are injected. A reference to the - // Timeslider controller would probably be more appropriate. -function loadBroadcastSliderJS(fireWhenAllScriptsAreLoaded) -{ +// These parameters were global, now they are injected. A reference to the +// Timeslider controller would probably be more appropriate. +function loadBroadcastSliderJS(fireWhenAllScriptsAreLoaded) { var BroadcastSlider; - (function() - { // wrap this code in its own namespace - var sliderLength = 1000; - var sliderPos = 0; - var sliderActive = false; - var slidercallbacks = []; - var savedRevisions = []; - var sliderPlaying = false; + (function() { // wrap this code in its own namespace + var sliderLength = 1000, + sliderPos = 0, + sliderActive = false, + slidercallbacks = [], + savedRevisions = [], + sliderPlaying = false; - function disableSelection(element) - { - element.onselectstart = function() - { + function disableSelection(element) { + element.onselectstart = function() { return false; }; - element.unselectable = "on"; + element.unselectable = "on"; element.style.MozUserSelect = "none"; - element.style.cursor = "default"; } - var _callSliderCallbacks = function(newval) - { - sliderPos = newval; - for (var i = 0; i < slidercallbacks.length; i++) - { - slidercallbacks[i](newval); - } - } - - - - - - var updateSliderElements = function() - { - for (var i = 0; i < savedRevisions.length; i++) - { - var position = parseInt(savedRevisions[i].attr('pos')); - savedRevisions[i].css('left', (position * ($("#ui-slider-bar").width() - 2) / (sliderLength * 1.0)) - 1); - } - $("#ui-slider-handle").css('left', sliderPos * ($("#ui-slider-bar").width() - 2) / (sliderLength * 1.0)); - } - - - - - - var addSavedRevision = function(position, info) - { - var newSavedRevision = $('
'); - newSavedRevision.addClass("star"); - - newSavedRevision.attr('pos', position); - newSavedRevision.css('position', 'absolute'); - newSavedRevision.css('left', (position * ($("#ui-slider-bar").width() - 2) / (sliderLength * 1.0)) - 1); - $("#timeslider-slider").append(newSavedRevision); - newSavedRevision.mouseup(function(evt) - { - BroadcastSlider.setSliderPosition(position); - }); - savedRevisions.push(newSavedRevision); - }; - - var removeSavedRevision = function(position) - { - var element = $("div.star [pos=" + position + "]"); - savedRevisions.remove(element); - element.remove(); - return element; - }; - - /* Begin small 'API' */ - - function onSlider(callback) - { + var _callSliderCallbacks = function(newval) { + sliderPos = newval; + for (var i=0, l=slidercallbacks.length; i < l; i++) { + slidercallbacks[i](newval); + } + }; + var updateSliderElements = function() { + for (var i=0, l=savedRevisions.length; i < l; i++) { + var position = parseInt(savedRevisions[i].attr('pos'), 10); + savedRevisions[i].css('left', (position * ($('#ui-slider-bar').width() - 2) / (sliderLength * 1.0)) - 1); + } + $('#ui-slider-handle').css('left', sliderPos * ($('#ui-slider-bar').width() - 2) / (sliderLength * 1.0)); + }; + var addSavedRevision = function(position, info) { + var newSavedRevision = $('
'); + newSavedRevision + .addClass('star') + .attr('pos', position) + .css('position', 'absolute') + .css('left', (position * ($('#ui-slider-bar').width() - 2) / (sliderLength * 1.0)) - 1); + $('#timeslider-slider').append(newSavedRevision); + newSavedRevision.mouseup(function(evt) { + BroadcastSlider.setSliderPosition(position); + }); + savedRevisions.push(newSavedRevision); + }; + + var removeSavedRevision = function(position) { + var element = $('.star [pos=' + position + ']'); + savedRevisions.remove(element); + element.remove(); + return element; + }; + + /* small 'API' START */ + function onSlider(callback) { slidercallbacks.push(callback); } - function getSliderPosition() - { + function getSliderPosition() { return sliderPos; } - function setSliderPosition(newpos) - { + function setSliderPosition(newpos) { newpos = Number(newpos); - if (newpos < 0 || newpos > sliderLength) return; - $("#ui-slider-handle").css('left', newpos * ($("#ui-slider-bar").width() - 2) / (sliderLength * 1.0)); - $("a.tlink").map(function() - { - $(this).attr('href', $(this).attr('thref').replace("%revision%", newpos)); + if (newpos < 0 || newpos > sliderLength) + return; + $('#ui-slider-handle').css('left', newpos * ($('#ui-slider-bar').width() - 2) / (sliderLength * 1.0)); + $('.tlink').map(function() { + $(this).attr('href', $(this).attr('thref').replace('%revision%', newpos)); }); - $("#revision_label").html("Version " + newpos); + $('#revision_label').html('Version ' + newpos); if (newpos == 0) - { - $("#leftstar").css('opacity', .5); - $("#leftstep").css('opacity', .5); - } + $('#leftstar, #leftstep').addClass('inactive'); else - { - $("#leftstar").css('opacity', 1); - $("#leftstep").css('opacity', 1); - } + $('#leftstar, #leftstep').removeClass('inactive'); if (newpos == sliderLength) - { - $("#rightstar").css('opacity', .5); - $("#rightstep").css('opacity', .5); - } + $('#rightstar, #rightstep').addClass('inactive'); else - { - $("#rightstar").css('opacity', 1); - $("#rightstep").css('opacity', 1); - } + $('#rightstar, #rightstep').removeClass('inactive'); sliderPos = newpos; _callSliderCallbacks(newpos); } - function getSliderLength() - { + function getSliderLength() { return sliderLength; } - function setSliderLength(newlength) - { + function setSliderLength(newlength) { sliderLength = newlength; updateSliderElements(); } - // just take over the whole slider screen with a reconnect message - - function showReconnectUI() - { - if (!clientVars.sliderEnabled || !clientVars.supportsSlider) - { - $("#padmain, #rightbars").css('top', "130px"); - $("#timeslider").show(); - } + // take over the whole slider screen with a reconnect message + function showReconnectUI() { $('#error').show(); } - function setAuthors(authors) - { - $("#authorstable").empty(); - var numAnonymous = 0; - var numNamed = 0; - authors.forEach(function(author) - { - if (author.name) - { + function setAuthors(authors) { + $('#authorstable').empty(); + var numAnonymous = 0, + numNamed = 0, + html; + authors.forEach(function(author) { + if (author.name) { numNamed++; - var tr = $(''); - var swatchtd = $(''); - var swatch = $('
'); + var tr = $(''), + swatchtd = $(''), + swatch = $('
'), + nametd = $(''); swatch.css('background-color', clientVars.colorPalette[author.colorId]); swatchtd.append(swatch); tr.append(swatchtd); - var nametd = $(''); - nametd.text(author.name || "unnamed"); + nametd.text(author.name || 'unnamed'); tr.append(nametd); - $("#authorstable").append(tr); - } - else - { + $('#authorstable').append(tr); + } else { numAnonymous++; } }); - if (numAnonymous > 0) - { - var html = "" + (numNamed > 0 ? "...and " : "") + numAnonymous + " unnamed author" + (numAnonymous > 1 ? "s" : "") + ""; - $("#authorstable").append($(html)); + if (numAnonymous > 0) { + html = '' + + (numNamed > 0 ? '...and ' : '') + numAnonymous + ' unnamed author' + + (numAnonymous > 1 ? 's' : '') + ''; + $('#authorstable').append($(html)); } - if (authors.length == 0) - { - $("#authorstable").append($("No Authors")) + if (authors.length == 0) { + html = 'No Authors'; + $('#authorstable').append($(html)); } } BroadcastSlider = { - onSlider: onSlider, - getSliderPosition: getSliderPosition, - setSliderPosition: setSliderPosition, - getSliderLength: getSliderLength, - setSliderLength: setSliderLength, - isSliderActive: function() - { + onSlider : onSlider, + getSliderPosition : getSliderPosition, + setSliderPosition : setSliderPosition, + getSliderLength : getSliderLength, + setSliderLength : setSliderLength, + isSliderActive : function() { return sliderActive; }, - playpause: playpause, - addSavedRevision: addSavedRevision, - showReconnectUI: showReconnectUI, - setAuthors: setAuthors - } - - function playButtonUpdater() - { - if (sliderPlaying) - { - if (getSliderPosition() + 1 > sliderLength) - { - $("#playpause_button_icon").toggleClass('pause'); + playpause : playpause, + addSavedRevision : addSavedRevision, + showReconnectUI : showReconnectUI, + setAuthors : setAuthors + }; + + function playButtonUpdater() { + if (sliderPlaying) { + if (getSliderPosition() + 1 > sliderLength) { + $('#playpause_button').toggleClass('pause'); sliderPlaying = false; return; } setSliderPosition(getSliderPosition() + 1); - setTimeout(playButtonUpdater, 100); } } - function playpause() - { - $("#playpause_button_icon").toggleClass('pause'); - - if (!sliderPlaying) - { + function playpause() { + $('#playpause_button').toggleClass('pause'); + if (!sliderPlaying) { if (getSliderPosition() == sliderLength) setSliderPosition(0); sliderPlaying = true; playButtonUpdater(); - } - else - { + } else { sliderPlaying = false; } } // assign event handlers to html UI elements after page load - //$(window).load(function () - fireWhenAllScriptsAreLoaded.push(function() - { + fireWhenAllScriptsAreLoaded.push(function() { disableSelection($("#playpause_button")[0]); disableSelection($("#timeslider")[0]); - if (clientVars.sliderEnabled && clientVars.supportsSlider) - { - $(document).keyup(function(e) - { - var code = -1; - if (!e) var e = window.event; - if (e.keyCode) code = e.keyCode; - else if (e.which) code = e.which; - - if (code == 37) - { // left - if (!e.shiftKey) - { - setSliderPosition(getSliderPosition() - 1); - } - else - { - var nextStar = 0; // default to first revision in document - for (var i = 0; i < savedRevisions.length; i++) - { - var pos = parseInt(savedRevisions[i].attr('pos')); - if (pos < getSliderPosition() && nextStar < pos) nextStar = pos; + if (clientVars.sliderEnabled && clientVars.supportsSlider) { + $(document).keyup(function(e) { + var code = -1, + i, l, nextStar, pos; + if (!e) + var e = window.event; + code = (e.keyCode) ? e.keyCode : e.which; + + switch (code) { + case 37: // left + if (!e.shiftKey) { + setSliderPosition(getSliderPosition() - 1); + } else { + nextStar = 0; // default to first revision in document + for (i=0, l=savedRevisions.length; i < l; i++) { + pos = parseInt(savedRevisions[i].attr('pos'), 10); + if (pos < getSliderPosition() && nextStar < pos) + nextStar = pos; + } + setSliderPosition(nextStar); } - setSliderPosition(nextStar); - } - } - else if (code == 39) - { - if (!e.shiftKey) - { - setSliderPosition(getSliderPosition() + 1); - } - else - { - var nextStar = sliderLength; // default to last revision in document - for (var i = 0; i < savedRevisions.length; i++) - { - var pos = parseInt(savedRevisions[i].attr('pos')); - if (pos > getSliderPosition() && nextStar > pos) nextStar = pos; + break; + case 39: + if (!e.shiftKey) { + setSliderPosition(getSliderPosition() + 1); + } else { + nextStar = sliderLength; // default to last revision in document + for (i=0, l=savedRevisions.length; i < l; i++) { + pos = parseInt(savedRevisions[i].attr('pos'), 10); + if (pos > getSliderPosition() && nextStar > pos) + nextStar = pos; + } + setSliderPosition(nextStar); } - setSliderPosition(nextStar); - } + break; + case 32: + playpause(); + break; } - else if (code == 32) playpause(); - }); } - $(window).resize(function() - { + $(window).resize(function() { updateSliderElements(); }); - $("#ui-slider-bar").mousedown(function(evt) - { - setSliderPosition(Math.floor((evt.clientX - $("#ui-slider-bar").offset().left) * sliderLength / 742)); - $("#ui-slider-handle").css('left', (evt.clientX - $("#ui-slider-bar").offset().left)); - $("#ui-slider-handle").trigger(evt); + $('#ui-slider-bar') + .mousedown(function(evt) { + setSliderPosition(Math.floor((evt.clientX - $('#ui-slider-bar').offset().left) * sliderLength / 742)); + $('#ui-slider-handle') + .css('left', (evt.clientX - $('#ui-slider-bar').offset().left)) + .trigger(evt); }); - // Slider dragging - $("#ui-slider-handle").mousedown(function(evt) - { - this.startLoc = evt.clientX; - this.currentLoc = parseInt($(this).css('left')); + // slider dragging + $('#ui-slider-handle') + .mousedown(function(evt) { + this.startLoc = evt.clientX; + this.currentLoc = parseInt($(this).css('left'), 10); var self = this; sliderActive = true; - $(document).mousemove(function(evt2) - { - $(self).css('pointer', 'move') - var newloc = self.currentLoc + (evt2.clientX - self.startLoc); - if (newloc < 0) newloc = 0; - if (newloc > ($("#ui-slider-bar").width() - 2)) newloc = ($("#ui-slider-bar").width() - 2); - $("#revision_label").html("Version " + Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width() - 2))); + $(document).mousemove(function(evt2) { + var newloc = self.currentLoc + (evt2.clientX - self.startLoc), + adjustedWidth = $('#ui-slider-bar').width() - 2, + pos; + if (newloc < 0) + newloc = 0; + if (newloc > adjustedWidth) + newloc = adjustedWidth; + $('#revision_label').html('Version ' + Math.floor(newloc * sliderLength / adjustedWidth)); $(self).css('left', newloc); - if (getSliderPosition() != Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width() - 2))) _callSliderCallbacks(Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width() - 2))) + pos = Math.floor(newloc * sliderLength / adjustedWidth); + if (getSliderPosition() != pos) + _callSliderCallbacks(pos); }); - $(document).mouseup(function(evt2) - { - $(document).unbind('mousemove'); - $(document).unbind('mouseup'); + $(document).mouseup(function(evt2) { + $(document) + .unbind('mousemove') + .unbind('mouseup'); sliderActive = false; var newloc = self.currentLoc + (evt2.clientX - self.startLoc); - if (newloc < 0) newloc = 0; - if (newloc > ($("#ui-slider-bar").width() - 2)) newloc = ($("#ui-slider-bar").width() - 2); + if (newloc < 0) + newloc = 0; + if (newloc > ($("#ui-slider-bar").width() - 2)) + newloc = ($("#ui-slider-bar").width() - 2); $(self).css('left', newloc); - // if(getSliderPosition() != Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width()-2))) - setSliderPosition(Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width() - 2))) - self.currentLoc = parseInt($(self).css('left')); + setSliderPosition(Math.floor(newloc * sliderLength / ($("#ui-slider-bar").width() - 2))); + self.currentLoc = parseInt($(self).css('left'), 10); }); - }) + }); - // play/pause toggling - $("#playpause_button").mousedown(function(evt) - { + // toggle play / pause + $('#playpause_button').mousedown(function(evt) { var self = this; - - $(self).css('background-image', 'url(/static/img/crushed_button_depressed.png)'); - $(self).mouseup(function(evt2) - { - $(self).css('background-image', 'url(/static/img/crushed_button_undepressed.png)'); + $(self) + .addClass('pressed') + .mouseup(function(evt2) { + $(self).removeClass('pressed'); $(self).unbind('mouseup'); BroadcastSlider.playpause(); }); - $(document).mouseup(function(evt2) - { - $(self).css('background-image', 'url(/static/img/crushed_button_undepressed.png)'); + $(document).mouseup(function(evt2) { + $(self).removeClass('pressed'); $(document).unbind('mouseup'); }); }); - // next/prev saved revision and changeset - $('.stepper').mousedown(function(evt) - { + // next / prev saved revision and changeset + $('#steppers A').mousedown(function(evt) { var self = this; - var origcss = $(self).css('background-position'); - if (!origcss) - { - origcss = $(self).css('background-position-x') + " " + $(self).css('background-position-y'); - } - var origpos = parseInt(origcss.split(" ")[1]); - var newpos = (origpos - 43); - if (newpos < 0) newpos += 87; - - var newcss = (origcss.split(" ")[0] + " " + newpos + "px"); - if ($(self).css('opacity') != 1.0) newcss = origcss; - - $(self).css('background-position', newcss) - - $(self).mouseup(function(evt2) - { - $(self).css('background-position', origcss); - $(self).unbind('mouseup'); + $(self) + .addClass('clicked') + .mouseup(function(evt2) { + $(self) + .removeClass('clicked') + .unbind('mouseup'); $(document).unbind('mouseup'); - if ($(self).attr("id") == ("leftstep")) - { - setSliderPosition(getSliderPosition() - 1); - } - else if ($(self).attr("id") == ("rightstep")) - { - setSliderPosition(getSliderPosition() + 1); - } - else if ($(self).attr("id") == ("leftstar")) - { - var nextStar = 0; // default to first revision in document - for (var i = 0; i < savedRevisions.length; i++) - { - var pos = parseInt(savedRevisions[i].attr('pos')); - if (pos < getSliderPosition() && nextStar < pos) nextStar = pos; - } - setSliderPosition(nextStar); - } - else if ($(self).attr("id") == ("rightstar")) - { - var nextStar = sliderLength; // default to last revision in document - for (var i = 0; i < savedRevisions.length; i++) - { - var pos = parseInt(savedRevisions[i].attr('pos')); - if (pos > getSliderPosition() && nextStar > pos) nextStar = pos; - } - setSliderPosition(nextStar); + var id = $(self).attr('id'), + i, l, nextStar, pos; + switch (id) { + case 'leftstep': + setSliderPosition(getSliderPosition() - 1); + break; + case 'rightstep': + setSliderPosition(getSliderPosition() + 1); + break; + case 'leftstar': + nextStar = 0; // default to first revision in document + for (i=0, l=savedRevisions.length; i < l; i++) { + pos = parseInt(savedRevisions[i].attr('pos'), 10); + if (pos < getSliderPosition() && nextStar < pos) + nextStar = pos; + } + setSliderPosition(nextStar); + break; + case 'rightstar': + nextStar = sliderLength; // default to last revision in document + for (i=0, l=savedRevisions.length; i < l; i++) { + pos = parseInt(savedRevisions[i].attr('pos'), 10); + if (pos > getSliderPosition() && nextStar > pos) + nextStar = pos; + } + setSliderPosition(nextStar); + break; } }); - $(document).mouseup(function(evt2) - { - $(self).css('background-position', origcss); - $(self).unbind('mouseup'); + $(document).mouseup(function(evt2) { + $(self) + .removeClass('clicked') + .unbind('mouseup'); $(document).unbind('mouseup'); }); - }) + }); - if (clientVars) - { + if (clientVars) { if (clientVars.fullWidth) - { - $("#padpage").css('width', '100%'); - $("#revision").css('position', "absolute") - $("#revision").css('right', "20px") - $("#revision").css('top', "20px") - $("#padmain").css('left', '0px'); - $("#padmain").css('right', '197px'); - $("#padmain").css('width', 'auto'); - $("#rightbars").css('right', '7px'); - $("#rightbars").css('margin-right', '0px'); - $("#timeslider").css('width', 'auto'); - } - - if (clientVars.disableRightBar) - { - $("#rightbars").css('display', 'none'); + $('#padpage').addClass('full-width'); + if (clientVars.disableRightBar) { + $('#rightbars').css('display', 'none'); $('#padmain').css('width', 'auto'); - if (clientVars.fullWidth) $("#padmain").css('right', '7px'); - else $("#padmain").css('width', '860px'); - $("#revision").css('position', "absolute"); - $("#revision").css('right', "20px"); - $("#revision").css('top', "20px"); + if (clientVars.fullWidth) + $('#padmain').css({right: 7}); + else + $('#padmain').css('width', '860px'); + $('#revision').css({ + position: 'absolute', + right : 20, + top : 20 + }); } - - - if (clientVars.sliderEnabled) - { - if (clientVars.supportsSlider) - { - $("#padmain, #rightbars").css('top', "130px"); - $("#timeslider").show(); + if (clientVars.sliderEnabled) { + if (clientVars.supportsSlider) { setSliderLength(clientVars.totalRevs); setSliderPosition(clientVars.revNum); - clientVars.savedRevisions.forEach(function(revision) - { + clientVars.savedRevisions.forEach(function(revision) { addSavedRevision(revision.revNum, revision); - }) - } - else - { + }); + } else { // slider is not supported - $("#padmain, #rightbars").css('top', "130px"); - $("#timeslider").show(); - $("#error").html("The timeslider feature is not supported on this pad.
Why not?"); - $("#error").show(); + $('#error').html('The timeslider feature is not supported on this pad. Why not?').show(); } - } - else - { - if (clientVars.supportsSlider) - { + } else { + if (clientVars.supportsSlider) { setSliderLength(clientVars.totalRevs); setSliderPosition(clientVars.revNum); } @@ -493,10 +389,9 @@ function loadBroadcastSliderJS(fireWhenAllScriptsAreLoaded) }); })(); - BroadcastSlider.onSlider(function(loc) - { - $("#viewlatest").html(loc == BroadcastSlider.getSliderLength() ? "Viewing latest content" : "View latest content"); - }) + BroadcastSlider.onSlider(function(loc) { + $('#viewlatest').html(loc == BroadcastSlider.getSliderLength() ? 'Viewing latest content' : 'View latest content'); + }); return BroadcastSlider; } diff --git a/static/js/chat.js b/static/js/chat.js index 8f076af6a83..61ca9fa236f 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -20,143 +20,119 @@ * limitations under the License. */ -var padutils = require('/pad_utils').padutils; -var padcookie = require('/pad_cookie').padcookie; +var padutils = require('/pad_utils').padutils, + padcookie = require('/pad_cookie').padcookie; -var chat = (function() -{ - var isStuck = false; - var chatMentions = 0; - var title = document.title; +var chat = (function() { + var isStuck = false, + chatMentions = 0, + title = document.title; var self = { - show: function () - { - $("#chaticon").hide(); - $("#chatbox").show(); + show: function() { + $('#chaticon').hide(); + $('#chatbox').show(); self.scrollDown(); chatMentions = 0; document.title = title; }, - stickToScreen: function(fromInitialCall) // Make chat stick to right hand side of screen - { + stickToScreen: function(fromInitialCall) { // make chat stick to right hand side of screen chat.show(); - if(!isStuck || fromInitialCall) { // Stick it to - padcookie.setPref("chatAlwaysVisible", true); - $('#chatbox').addClass("stickyChat"); - $('#chattext').css({"top":"0px"}); - $('#editorcontainer').css({"right":"192px", "width":"auto"}); + if (!isStuck || fromInitialCall) { // do stick it + padcookie.setPref('chatAlwaysVisible', true); + $('BODY').addClass('chat-visible'); isStuck = true; - } else { // Unstick it - padcookie.setPref("chatAlwaysVisible", false); - $('#chatbox').removeClass("stickyChat"); - $('#chattext').css({"top":"25px"}); - $('#editorcontainer').css({"right":"0px", "width":"100%"}); + } else { // unstick it + padcookie.setPref('chatAlwaysVisible', false); + $('BODY').removeClass('chat-visible'); isStuck = false; } }, - hide: function () - { - $("#chatcounter").text("0"); - $("#chaticon").show(); - $("#chatbox").hide(); + hide: function() { + $('#chatcounter').text('0'); + $('#chaticon').show(); + $('#chatbox').hide(); }, - scrollDown: function() - { - if($('#chatbox').css("display") != "none") - $('#chattext').animate({scrollTop: $('#chattext')[0].scrollHeight}, "slow"); + scrollDown: function() { + if ($('#chatbox').is(':visible')) + $('#chattext').animate({scrollTop: $('#chattext')[0].scrollHeight}, 600); }, - send: function() - { - var text = $("#chatinput").val(); - this._pad.collabClient.sendMessage({"type": "CHAT_MESSAGE", "text": text}); - $("#chatinput").val(""); + send: function() { + var text = $('#chatinput').val(); + this._pad.collabClient.sendMessage({ + 'type': 'CHAT_MESSAGE', + 'text': text + }); + $('#chatinput').val(''); }, - addMessage: function(msg, increment) - { - //correct the time + addMessage: function(msg, increment) { + // correct the time msg.time += this._pad.clientTimeOffset; - //create the time string - var minutes = "" + new Date(msg.time).getMinutes(); - var hours = "" + new Date(msg.time).getHours(); - if(minutes.length == 1) - minutes = "0" + minutes ; - if(hours.length == 1) - hours = "0" + hours ; - var timeStr = hours + ":" + minutes; + // create the time string + var minutes = '' + new Date(msg.time).getMinutes(), + hours = '' + new Date(msg.time).getHours(), + timeStr; + if (minutes.length == 1) + minutes = '0' + minutes; + if (hours.length == 1) + hours = '0' + hours; + timeStr = hours + ':' + minutes; - //create the authorclass - var authorClass = "author-" + msg.userId.replace(/[^a-y0-9]/g, function(c) - { - if (c == ".") return "-"; + // create the authorclass + var authorClass = 'author-' + msg.userId.replace(/[^a-y0-9]/g, function(c) { + if (c == '.') + return '-'; return 'z' + c.charCodeAt(0) + 'z'; }); - var text = padutils.escapeHtmlWithClickableLinks(msg.text, "_blank"); + var text = padutils.escapeHtmlWithClickableLinks(padutils.escapeHtml(msg.text), '_blank'); - /* Performs an action if your name is mentioned */ - var myName = $('#myusernameedit').val(); - myName = myName.toLowerCase(); - var chatText = text.toLowerCase(); - var wasMentioned = false; - if (chatText.indexOf(myName) !== -1 && myName != "undefined"){ + // do something when your name is mentioned + var myName = $('#myusernameedit').val().toLowerCase(), + chatText = text.toLowerCase(), + wasMentioned = false; + if (chatText.indexOf(myName) !== -1 && myName != 'undefined') wasMentioned = true; - } - /* End of new action */ + // end of action - var authorName = msg.userName == null ? "unnamed" : padutils.escapeHtml(msg.userName); + var authorName = msg.userName == null ? 'unnamed' : padutils.escapeHtml(msg.userName), + html = '

' + authorName + ':' + timeStr + '' + text + '

'; + $('#chattext').append(html); - var html = "

" + authorName + ":" + timeStr + " " + text + "

"; - $("#chattext").append(html); - - //should we increment the counter?? - if(increment) - { - var count = Number($("#chatcounter").text()); + // should we increment the counter?? + if (increment) { + var count = Number($('#chatcounter').text()); count++; - $("#chatcounter").text(count); + $('#chatcounter').text(count); // chat throb stuff -- Just make it throw for twice as long - if(wasMentioned) - { // If the user was mentioned show for twice as long and flash the browser window - if (chatMentions == 0){ + if (wasMentioned) { // If the user was mentioned, show twice as long and flash the browser window + if (chatMentions == 0) title = document.title; - } - $('#chatthrob').html(""+authorName+"" + ": " + text).show().delay(4000).hide(400); + $('#chatthrob').html('' + authorName + '' + ': ' + text).show().delay(4000).hide(400); chatMentions++; - document.title = "("+chatMentions+") " + title; - } - else - { - $('#chatthrob').html(""+authorName+"" + ": " + text).show().delay(2000).hide(400); + document.title = '(' + chatMentions + ') ' + title; + } else { + $('#chatthrob').html('' + authorName + '' + ': ' + text).show().delay(2000).hide(400); } } - self.scrollDown(); - }, - init: function(pad) - { + init: function(pad) { this._pad = pad; - $("#chatinput").keypress(function(evt) - { - //if the user typed enter, fire the send - if(evt.which == 13) - { + $('#chatinput').keypress(function(evt) { + if (evt.which == 13) { // send on enter evt.preventDefault(); self.send(); } }); - - for(var i in clientVars.chatHistory) - { + for (var i in clientVars.chatHistory) { this.addMessage(clientVars.chatHistory[i], false); } - $("#chatcounter").text(clientVars.chatHistory.length); + $('#chatcounter').text(clientVars.chatHistory.length); } - } + }; return self; }()); -exports.chat = chat; - +exports.chat = chat; \ No newline at end of file diff --git a/static/js/pad_editbar.js b/static/js/pad_editbar.js index 2369263100c..774059f9d6e 100644 --- a/static/js/pad_editbar.js +++ b/static/js/pad_editbar.js @@ -20,74 +20,56 @@ * limitations under the License. */ -var padutils = require('/pad_utils').padutils; -var padeditor = require('/pad_editor').padeditor; -var padsavedrevs = require('/pad_savedrevs').padsavedrevs; +var padutils = require('/pad_utils').padutils, + padeditor = require('/pad_editor').padeditor, + padsavedrevs = require('/pad_savedrevs').padsavedrevs; function indexOf(array, value) { - for (var i = 0, ii = array.length; i < ii; i++) { - if (array[i] == value) { + for (var i=0, ii=array.length; i < ii; i++) { + if (array[i] == value) return i; - } } return -1; } -var padeditbar = (function() -{ - - var syncAnimation = (function() - { - var SYNCING = -100; - var DONE = 100; - var state = DONE; - var fps = 25; - var step = 1 / fps; - var T_START = -0.5; - var T_FADE = 1.0; - var T_GONE = 1.5; - var animator = padutils.makeAnimationScheduler(function() - { +var padeditbar = (function() { + var syncAnimation = (function() { + var SYNCING = -100, + DONE = 100, + state = DONE, + fps = 25, + step = 1 / fps, + T_START = -0.5, + T_FADE = 1.0, + T_GONE = 1.5; + var animator = padutils.makeAnimationScheduler(function() { if (state == SYNCING || state == DONE) - { return false; - } - else if (state >= T_GONE) - { + else if (state >= T_GONE) { state = DONE; - $("#syncstatussyncing").css('display', 'none'); - $("#syncstatusdone").css('display', 'none'); + $('#syncstatussyncing, #syncstatusdone').hide(); return false; - } - else if (state < 0) - { + } else if (state < 0) { state += step; - if (state >= 0) - { - $("#syncstatussyncing").css('display', 'none'); - $("#syncstatusdone").css('display', 'block').css('opacity', 1); + if (state >= 0) { + $('#syncstatussyncing').hide(); + $('#syncstatusdone').show().css({opacity: 1}); } return true; - } - else - { + } else { state += step; if (state >= T_FADE) - { - $("#syncstatusdone").css('opacity', (T_GONE - state) / (T_GONE - T_FADE)); - } + $('#syncstatusdone').css('opacity', (T_GONE - state) / (T_GONE - T_FADE)); return true; } }, step * 1000); return { - syncing: function() - { + syncing: function() { state = SYNCING; - $("#syncstatussyncing").css('display', 'block'); - $("#syncstatusdone").css('display', 'none'); + $('#syncstatussyncing').show(); + $('#syncstatusdone').hide(); }, - done: function() - { + done: function() { state = T_START; animator.scheduleAnimation(); } @@ -95,162 +77,117 @@ var padeditbar = (function() }()); var self = { - init: function() - { - $("#editbar .editbarbutton").attr("unselectable", "on"); // for IE - $("#editbar").removeClass("disabledtoolbar").addClass("enabledtoolbar"); + init: function() { + $('#editbar A').attr('unselectable', 'on'); // for IE + $('#editbar').removeClass('disabledtoolbar').addClass('enabledtoolbar'); }, - isEnabled: function() - { + isEnabled: function() { // return !$("#editbar").hasClass('disabledtoolbar'); return true; }, - disable: function() - { - $("#editbar").addClass('disabledtoolbar').removeClass("enabledtoolbar"); + disable: function() { + $('#editbar').addClass('disabledtoolbar').removeClass('enabledtoolbar'); }, - toolbarClick: function(cmd) - { - if (self.isEnabled()) - { - if(cmd == "showusers") - { - self.toogleDropDown("users"); - } - else if (cmd == 'settings') - { - self.toogleDropDown("settingsmenu"); - } - else if (cmd == 'embed') - { - self.setEmbedLinks(); - $('#linkinput').focus().select(); - self.toogleDropDown("embed"); - } - else if (cmd == 'import_export') - { - self.toogleDropDown("importexport"); - } - else if (cmd == 'save') - { - padsavedrevs.saveNow(); - } - else - { - padeditor.ace.callWithAce(function(ace) - { - if (cmd == 'bold' || cmd == 'italic' || cmd == 'underline' || cmd == 'strikethrough') ace.ace_toggleAttributeOnSelection(cmd); - else if (cmd == 'undo' || cmd == 'redo') ace.ace_doUndoRedo(cmd); - else if (cmd == 'insertunorderedlist') ace.ace_doInsertUnorderedList(); - else if (cmd == 'insertorderedlist') ace.ace_doInsertOrderedList(); - else if (cmd == 'indent') - { - if (!ace.ace_doIndentOutdent(false)) - { + toolbarClick: function(cmd) { + if (self.isEnabled()) { + switch(cmd) { + case 'users': + self.toggleDropDown('users'); + break; + case 'settings': + self.toggleDropDown('settings'); + break; + case 'embed': + self.setEmbedLinks(); + self.toggleDropDown('embed'); + break; + case 'importexport': + self.toggleDropDown('importexport'); + break; + case 'save': + padsavedrevs.saveNow(); + break; + default: + padeditor.ace.callWithAce(function(ace) { + if (cmd == 'bold' || cmd == 'italic' || cmd == 'underline' || cmd == 'strikethrough') + ace.ace_toggleAttributeOnSelection(cmd); + else if (cmd == 'undo' || cmd == 'redo') + ace.ace_doUndoRedo(cmd); + else if (cmd == 'insertunorderedlist') ace.ace_doInsertUnorderedList(); - } - } - else if (cmd == 'outdent') - { - ace.ace_doIndentOutdent(true); - } - else if (cmd == 'clearauthorship') - { - if ((!(ace.ace_getRep().selStart && ace.ace_getRep().selEnd)) || ace.ace_isCaret()) - { - if (window.confirm("Clear authorship colors on entire document?")) - { - ace.ace_performDocumentApplyAttributesToCharRange(0, ace.ace_getRep().alltext.length, [ - ['author', ''] - ]); + else if (cmd == 'insertorderedlist') + ace.ace_doInsertOrderedList(); + else if (cmd == 'indent') { + if (!ace.ace_doIndentOutdent(false)) + ace.ace_doInsertUnorderedList(); + } else if (cmd == 'outdent') + ace.ace_doIndentOutdent(true); + else if (cmd == 'clearauthorship') { + if ((!(ace.ace_getRep().selStart && ace.ace_getRep().selEnd)) || ace.ace_isCaret()) { + if (window.confirm("Clear authorship colors on entire document?")) { + ace.ace_performDocumentApplyAttributesToCharRange(0, ace.ace_getRep().alltext.length, [ + ['author', ''] + ]); + } + } else { + ace.ace_setAttributeOnSelection('author', ''); } } - else - { - ace.ace_setAttributeOnSelection('author', ''); - } - } - }, cmd, true); + }, cmd, true); } } - if(padeditor.ace) padeditor.ace.focus(); + if (padeditor.ace) + padeditor.ace.focus(); }, - toogleDropDown: function(moduleName) - { - var modules = ["settingsmenu", "importexport", "embed", "users"]; - - //hide all modules - if(moduleName == "none") - { - $("#editbar ul#menu_right > li").removeClass("selected"); - for(var i=0;i 0 && nth_child <= 3) { - $("#editbar ul#menu_right li:not(:nth-child(" + nth_child + "))").removeClass("selected"); - $("#editbar ul#menu_right li:nth-child(" + nth_child + ")").toggleClass("selected"); - } - //hide all modules that are not selected and show the selected one - for(var i=0;i"); $('#linkinput').val(readonlyLink); - $('#embedreadonlyqr').attr("src","https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=|0&chl=" + readonlyLink); - } - else - { - var padurl = window.location.href.split("?")[0]; + $('#embedreadonlyqr').attr('src', 'https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=H|0&chl=' + readonlyLink); + } else { + var padurl = window.location.href.split('?')[0]; $('#embedinput').val("