Merge remote branch 'johns/master'

This commit is contained in:
HansPinckaers 2011-04-06 19:31:23 +02:00
commit 9eb1fecfa7
16 changed files with 1329 additions and 2561 deletions

4
README
View File

@ -9,6 +9,7 @@ Why use Etherpad Lite?
* Simplfied interface
* Easy to embed
* Well documented
* Better support for third party editors
What isn't available yet when compared to Etherpad?
* Timeslider
@ -31,7 +32,8 @@ INSTALATION
3. npm install socket.io
RUNNING
1. bin/run.sh
1. cd bin
2. ./run.sh
TESTING
1. Open your web browser and visit http://IPSERVER:9001

View File

@ -25,7 +25,7 @@ var AttributePoolFactory = require("./AttributePoolFactory");
/**
* The initial Text of a Pad
*/
exports.startText = "Hello World\nGoodbye Etherpad";
exports.startText = "Welcome to Etherpad Lite. This pad text is synchronized as you type, so that everyone viewing this page sees the same text.";
/**
* A Array with all known Pads

1122
static/css/pad_lite.css Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

View File

@ -176,7 +176,7 @@ function Ace2Editor() {
//iframeHTML.push($$INCLUDE_CSS_Q("editor.css syntax.css inner.css"));
iframeHTML.push($$INCLUDE_CSS_Q("/static/css/editor.css"));
iframeHTML.push($$INCLUDE_CSS_Q("/static/css/syntax.cs"));
iframeHTML.push($$INCLUDE_CSS_Q("/static/css/syntax.css"));
iframeHTML.push($$INCLUDE_CSS_Q("/static/css/inner.css"));
//iframeHTML.push(INCLUDE_JS_Q_DEV("ace2_common_dev.js"));

View File

@ -16,8 +16,8 @@
function OUTER(gscope) {
var DEBUG=true;//$$ build script replaces the string "var DEBUG=true;//$$" with "var DEBUG=false;"
var DEBUG=false;//$$ build script replaces the string "var DEBUG=true;//$$" with "var DEBUG=false;"
// changed to false
var isSetUp = false;
var THE_TAB = ' ';//4
@ -73,8 +73,8 @@ function OUTER(gscope) {
var iframePadTop = EDIT_BODY_PADDING_TOP;
var iframePadBottom = 0, iframePadRight = 0;
var console = (DEBUG && top.console);
if (! console) {
var console = (DEBUG && window.console);
if (! window.console) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
console = {};
@ -82,6 +82,7 @@ function OUTER(gscope) {
console[names[i]] = function() {};
//console.error = function(str) { alert(str); };
}
var PROFILER = window.PROFILER;
if (!PROFILER) {
PROFILER = function() { return {start:noop, mark:noop, literal:noop, end:noop, cancel:noop}; };
@ -767,7 +768,7 @@ function OUTER(gscope) {
else {
setAttributeOnSelection('author', '');
}
},
}
};
function execCommand(cmd) {
@ -1311,7 +1312,7 @@ function OUTER(gscope) {
isTimeUp = (isTimeUp || function() { return false; });
if (DEBUG && top.DONT_INCORP || window.DEBUG_DONT_INCORP) return false;
if (DEBUG && window.DONT_INCORP || window.DEBUG_DONT_INCORP) return false;
var p = PROFILER("incorp", false);
@ -2998,7 +2999,7 @@ function OUTER(gscope) {
}
function handleKeyEvent(evt) {
if (DEBUG && top.DONT_INCORP) return;
// if (DEBUG && window.DONT_INCORP) return;
if (! isEditable) return;

18
static/js/json.js Normal file
View File

@ -0,0 +1,18 @@
if(!this.JSON){JSON=function(){function f(n){return n<10?'0'+n:n;}
Date.prototype.toJSON=function(){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};function stringify(value,whitelist){var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;switch(typeof value){case'string':return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+
(c%16).toString(16);})+'"':'"'+value+'"';case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
if(typeof value.toJSON==='function'){return stringify(value.toJSON());}
a=[];if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))){l=value.length;for(i=0;i<l;i+=1){a.push(stringify(value[i],whitelist)||'null');}
return'['+a.join(',')+']';}
if(whitelist){l=whitelist.length;for(i=0;i<l;i+=1){k=whitelist[i];if(typeof k==='string'){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+':'+v);}}}}else{for(k in value){if(typeof k==='string'){v=stringify(value[k],whitelist);if(v){a.push(stringify(k)+':'+v);}}}}
return'{'+a.join(',')+'}';}}
return{stringify:stringify,parse:function(text,filter){var j;function walk(k,v){var i,n;if(v&&typeof v==='object'){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){n=walk(i,v[i]);if(n!==undefined){v[i]=n;}}}}
return filter(k,v);}
if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof filter==='function'?walk('',j):j;}
throw new SyntaxError('parseJSON');}};}();}

View File

@ -208,7 +208,7 @@ var pad = {
padeditor.init(postAceInit, pad.padOptions.view || {});
paduserlist.init(pad.myUserInfo);
padchat.init(clientVars.chatHistory, pad.myUserInfo);
// padchat.init(clientVars.chatHistory, pad.myUserInfo);
padconnectionstatus.init();
padmodals.init();
@ -236,12 +236,12 @@ var pad = {
notifyChangeName: function(newName) {
pad.myUserInfo.name = newName;
pad.collabClient.updateUserInfo(pad.myUserInfo);
padchat.handleUserJoinOrUpdate(pad.myUserInfo);
//padchat.handleUserJoinOrUpdate(pad.myUserInfo);
},
notifyChangeColor: function(newColorId) {
pad.myUserInfo.colorId = newColorId;
pad.collabClient.updateUserInfo(pad.myUserInfo);
padchat.handleUserJoinOrUpdate(pad.myUserInfo);
//padchat.handleUserJoinOrUpdate(pad.myUserInfo);
},
notifyChangeTitle: function(newTitle) {
pad.collabClient.sendClientMessage({
@ -311,15 +311,15 @@ var pad = {
},
handleUserJoin: function(userInfo) {
paduserlist.userJoinOrUpdate(userInfo);
padchat.handleUserJoinOrUpdate(userInfo);
//padchat.handleUserJoinOrUpdate(userInfo);
},
handleUserUpdate: function(userInfo) {
paduserlist.userJoinOrUpdate(userInfo);
padchat.handleUserJoinOrUpdate(userInfo);
//padchat.handleUserJoinOrUpdate(userInfo);
},
handleUserLeave: function(userInfo) {
paduserlist.userLeave(userInfo);
padchat.handleUserLeave(userInfo);
//padchat.handleUserLeave(userInfo);
},
handleClientMessage: function(msg) {
if (msg.type == 'suggestUserName') {
@ -330,7 +330,7 @@ var pad = {
}
}
else if (msg.type == 'chat') {
padchat.receiveChat(msg);
//padchat.receiveChat(msg);
}
else if (msg.type == 'padtitle') {
paddocbar.changeTitle(msg.title);
@ -531,8 +531,6 @@ var pad = {
'/static/img/jun09/pad/sharebox4.gif',
'/static/img/jun09/pad/sharedistri.gif',
'/static/img/jun09/pad/colorpicker.gif',
'/static/img/jun09/pad/docbarstates.png',
'/static/img/jun09/pad/overlay.png'
];
function loadNextImage() {
if (images.length == 0) {

View File

@ -78,6 +78,49 @@ var padeditbar = (function(){
},
toolbarClick: function(cmd) {
if (self.isEnabled()) {
if (cmd == 'showusers') {
// show users shows the current users on teh pad
// get current height
var editbarheight = $('#editbar').css('height');
if (editbarheight == "36px"){
// increase the size of the editbar
$('#editbar').animate({height:'72px'});
$('#editorcontainerbox').animate({top:'72px'});
$('#embed').hide();
$('#users').show();
}
else
{
// increase the size of the editbar
$('#editbar').animate({height:'36px'});
$('#editorcontainerbox').animate({top:'36px'});
$('#users').hide();
}
}
if (cmd == 'embed') {
// embed shows the embed link
// get current height
var editbarheight = $('#editbar').css('height');
if (editbarheight == "36px"){
// increase the size of the editbar
$('#editbar').animate({height:'72px'});
$('#editorcontainerbox').animate({top:'72px'});
// hide the users
$('#users').hide();
// get the pad url
padurl = document.location;
// change the div contents to include the pad url in an input box
$('#embed').html('<div id="embedcode">Embed code:<input id="embedinput" type="text" value="<iframe src=&quot;'+padurl+'&quot; width=500 height=400>"</iframe>></div>');
$('#embed').show();
}
else
{
// increase the size of the editbar
$('#editbar').animate({height:'36px'});
$('#editorcontainerbox').animate({top:'36px'});
$('#embed').hide();
}
}
if (cmd == 'save') {
padsavedrevs.saveNow();
} else {
@ -119,4 +162,4 @@ var padeditbar = (function(){
}
};
return self;
}());
}());

View File

@ -76,15 +76,6 @@ var padmodals = (function() {
$("#feedbackbutton").click(function() {
self.showFeedback();
});
$("#uservoicelinks a").click(function() {
self.hideModal();
return true;
});
$("#feedbackemails a").each(function() {
var node = $(this);
node.attr('href', "mailto:"+node.attr('href')+"@etherpad.com");
});
},
initShareBox: function() {
$("#sharebutton, #nootherusers a").click(function() {

View File

@ -14,6 +14,42 @@
* limitations under the License.
*/
var colorPickerOpen = false;
function getColorPickerSwatchIndex(jnode) {
return Number(jnode.get(0).className.match(/\bn([0-9]+)\b/)[1])-1;
}
function closeColorPicker(accept) {
if (accept) {
var newColorId = getColorPickerSwatchIndex($("#mycolorpicker .picked"));
if (newColorId >= 0) { // fails on NaN
myUserInfo.colorId = newColorId;
pad.notifyChangeColor(newColorId);
}
}
colorPickerOpen = false;
$("#mycolorpicker").css('display', 'none');
renderMyUserInfo();
}
function showColorPicker() {
if (! colorPickerOpen) {
var palette = pad.getColorPalette();
for(var i=0;i<palette.length;i++) {
$("#mycolorpicker .n"+(i+1)+" .pickerswatch").css(
'background', palette[i]);
}
$("#mycolorpicker").css('display', 'block');
colorPickerOpen = true;
renderMyUserInfo();
}
// this part happens even if color picker is already open
$("#mycolorpicker .pickerswatchouter").removeClass('picked');
$("#mycolorpicker .pickerswatchouter:eq("+(myUserInfo.colorId||0)+")").
addClass('picked');
}
var paduserlist = (function() {
@ -278,7 +314,6 @@ var paduserlist = (function() {
var myUserInfo = {};
var otherUsersInfo = [];
var otherUsersData = [];
var colorPickerOpen = false;
function rowManagerMakeNameEditor(jnode, userId) {
setUpEditable(jnode, function() {
@ -352,38 +387,6 @@ var paduserlist = (function() {
jqueryNode.removeAttr('disabled').addClass('editable');
}
function showColorPicker() {
if (! colorPickerOpen) {
var palette = pad.getColorPalette();
for(var i=0;i<palette.length;i++) {
$("#mycolorpicker .n"+(i+1)+" .pickerswatch").css(
'background', palette[i]);
}
$("#mycolorpicker").css('display', 'block');
colorPickerOpen = true;
renderMyUserInfo();
}
// this part happens even if color picker is already open
$("#mycolorpicker .pickerswatchouter").removeClass('picked');
$("#mycolorpicker .pickerswatchouter:eq("+(myUserInfo.colorId||0)+")").
addClass('picked');
}
function getColorPickerSwatchIndex(jnode) {
return Number(jnode.get(0).className.match(/\bn([0-9]+)\b/)[1])-1;
}
function closeColorPicker(accept) {
if (accept) {
var newColorId = getColorPickerSwatchIndex($("#mycolorpicker .picked"));
if (newColorId >= 0) { // fails on NaN
myUserInfo.colorId = newColorId;
pad.notifyChangeColor(newColorId);
}
}
colorPickerOpen = false;
$("#mycolorpicker").css('display', 'none');
renderMyUserInfo();
}
function updateInviteNotice() {
if (otherUsersInfo.length == 0) {
$("#otheruserstable").hide();

View File

@ -6,10 +6,10 @@
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />
<title>LinePad v0.0.1: test</title>
<!-- <base href="http://localhost:8080/" />-->
<title>Etherpad Lite v0.0.1: test</title>
<!-- <base href="http://localhost:9001/" />-->
<!-- CSS -->
<link href="/static/css/pad2_ejs.css" rel="stylesheet" type="text/css" />
<link href="/static/css/pad_lite.css" rel="stylesheet" type="text/css" />
<!-- javascript -->
<script type="text/javascript">
@ -19,7 +19,11 @@ var clientVars = {}; // ]]>
<!-- <script type="text/javascript" src="/static/js/client.js"></script>-->
<script type="text/javascript" src="/static/js/plugins.js"></script>
<script type="text/javascript" src="/static/js/undo-xpopup.js"></script>
<script type="text/javascript" src="/static/js/jquery-1.3.2.js"></script>
<!--
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/json.js"></script>
<script type="text/javascript" src="/static/js/json2.js"></script>
<script type="text/javascript" src="/static/js/colorutils.js"></script>
<script type="text/javascript" src="/static/js/draggable.js"></script>
@ -32,7 +36,6 @@ var clientVars = {}; // ]]>
<script type="text/javascript" src="/static/js/ace.js"></script>
<script type="text/javascript" src="/static/js/collab_client.js"></script>
<script type="text/javascript" src="/static/js/pad_userlist.js"></script>
<script type="text/javascript" src="/static/js/pad_chat.js"></script>
<script type="text/javascript" src="/static/js/pad_impexp.js"></script>
<script type="text/javascript" src="/static/js/pad_savedrevs.js"></script>
<script type="text/javascript" src="/static/js/pad_connectionstatus.js"></script>
@ -42,192 +45,9 @@ var clientVars = {}; // ]]>
<body id="padbody" class="limwidth nonpropad nonprouser">
<div id="padpage">
<div id="padtop">
<div id="topbar">
<div id="topbarleft"><!-- --></div>
<div id="topbarright"><!-- --></div>
<div id="topbarcenter">
<a href="/" id="topbarBrand">Etherpad v1.1</a>
<a href="http://etherpad.org" id="EtherpadLink">Etherpad is</a> <a href="/static/LICENSE" id="Licensing">free software</a>
<div id="fullscreen" onclick="$('body').toggleClass('maximized');">Full screen</div>
<a href="javascript:void(0);" onclick="$('body').toggleClass('maximized');" id="topbarmaximize" title="Toggle maximization"></a>
</div>
<div id="specialkeyarea"><!-- --></div>
</div>
<div id="alertbar">
<div id="servermsg">
<h3>Server Notice<span id="servermsgdate"><!-- --></span>:</h3>
<a id="hidetopmsg" href="javascript: void pad.hideServerMessage()">hide</a>
<p id="servermsgtext"><!-- --></p>
</div>
</div>
<div id="navigation">
</div>
<div id="docbar" class="menu">
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="docbartable">
<tr>
<td><img src="/static/img/jun09/pad/roundcorner_left.gif"></td>
<td id="docbarpadtitle"><span>Public Pad</span></td>
<td width="100%">&nbsp;</td>
<td id="docbaroptions-outer" class="docbarbutton">
<a href="javascript:void(0)" id="docbaroptions">
<img src="/static/img/jun09/pad/icon_pad_options.gif">Pad&nbsp;Options</a>
</td>
<td id="docbarimpexp-outer" class="docbarbutton">
<a href="javascript:void(0)" id="docbarimpexp">
<img src="/static/img/jun09/pad/icon_import_export.gif">Import/Export</a>
</td>
<td id="docbarsavedrevs-outer" class="docbarbutton">
<a href="javascript:void(0)" id="docbarsavedrevs">
<img src="/static/img/jun09/pad/icon_saved_revisions.gif">Saved&nbsp;revisions</a>
</td>
<td id="docbarslider-outer" class="docbarbutton highlight">
<a target="_blank" href="/ep/pad/view/test/latest" id="docbarslider">
<img src="/static/img/jun09/pad/icon_time_slider.gif">Time&nbsp;Slider</a>
</td>
<td><img src="/static/img/jun09/pad/roundcorner_right_orange.gif"></td>
</tr>
</table>
<input type="text" id="padtitleedit"/>
<div id="padtitlebuttons">
<a id="padtitlesave" href="javascript:void(0)">Save</a>
<a id="padtitlecancel" href="javascript:void(0)">Cancel</a>
</div>
<div id="impexp-wrapper" class="dbpanel-wrapper">
<div id="impexp-panel" class="dbpanel-panel">
<div class="dbpanel-leftedge"><!-- --></div>
<div class="dbpanel-rightedge"><!-- --></div>
<div class="dbpanel-botleftcorner"><!-- --></div>
<div class="dbpanel-botrightcorner"><!-- --></div>
<div class="dbpanel-middle">
<div class="dbpanel-inner">
<div class="dbpanel-top"><!-- --></div>
</div>
<div class="dbpanel-bottom"><!-- --></div>
<div id="importexport">
<div id="impexp-import">
<div id="impexp-importlabel"><b>Import</b> from text file, HTML, Word, or RTF:</div>
<form id="importform" method="post" action="/ep/pad/impexp/import"
target="importiframe" enctype="multipart/form-data">
<div class="importformdiv" id="importformfilediv">
<input type="file" name="file" size="20" id="importfileinput" />
<div class="importmessage" id="importmessagefail"></div>
</div>
<div class="importmessage" id="importmessagesuccess">Successful!</div>
<div class="importformdiv" id="importformsubmitdiv">
<input type="hidden" name="padId" value="test" />
<span class="nowrap">
<input type="submit" name="submit" value="Import Now" disabled="disabled" id="importsubmitinput" />
<img alt="" id="importstatusball" src="/static/img/misc/status-ball.gif" align="top" />
<img alt="" id="importarrow" src="/static/img/may09/leftarrow2.gif" align="top" />
</span>
</div>
</form>
</div><!-- /impexp-import -->
<div id="impexp-export">
<div id="impexp-exportlabel"><b>Export</b> current pad as:</div>
<div id="exportlinks">
<a class="exportlink exporthrefhtml n1 requiresoffice" target="_blank" href="/ep/pad/export/test/latest?format=html">HTML</a>
<a class="exportlink exporthreftxt n2 requiresoffice" target="_blank" href="/ep/pad/export/test/latest?format=txt">Plain text</a>
<a class="exportlink exporthreflink n3 requiresoffice" target="_blank" href="/ep/pad/linkfile?padId=test" title="This will save a file that, when opened, takes you to this pad.">Bookmark file</a>
<a class="exportlink exporthrefdoc n4 requiresoffice" target="_blank" href="/ep/pad/export/test/latest?format=doc">Microsoft Word</a>
<a class="exportlink exporthrefpdf n5 requiresoffice" target="_blank" href="/ep/pad/export/test/latest?format=pdf">PDF</a>
<a class="exportlink exporthrefodt n6 requiresoffice" target="_blank" href="/ep/pad/export/test/latest?format=odt">OpenDocument</a>
</div>
</div><!-- /impexp-export -->
<div id="impexp-divider"><!-- --></div>
<div id="impexp-disabled-clickcatcher"><!-- --></div>
<a id="impexp-close" href="javascript:void(0)">Hide</a>
</div><!-- /importexport -->
</div>
</div>
</div>
<div id="savedrevs-wrapper" class="dbpanel-wrapper">
<div id="savedrevs-panel" class="dbpanel-panel">
<div class="dbpanel-leftedge"><!-- --></div>
<div class="dbpanel-rightedge"><!-- --></div>
<div class="dbpanel-botleftcorner"><!-- --></div>
<div class="dbpanel-botrightcorner"><!-- --></div>
<div class="dbpanel-middle">
<div class="dbpanel-inner">
<div class="dbpanel-top"><!-- --></div>
</div>
<div class="dbpanel-bottom"><!-- --></div>
</div>
<div id="savedrevisions">
<a href="javascript:void(0)" id="savedrevs-savenow">
Save Now
</a>
<div id="savedrevs-scrolly">
<div id="savedrevs-scrollleft" class="disabledscrollleft"><!-- --></div>
<div id="savedrevs-scrollright" class="disabledscrollright"><!-- --></div>
<div id="savedrevs-scrollouter">
<div id="savedrevs-scrollinner">
<!-- -->
</div>
</div>
</div>
<a id="savedrevs-close" href="javascript:void(0)">Hide</a>
</div><!-- /savedrevs close -->
</div>
</div><!-- /savedrevs-wrapper -->
<div id="revision-notifier"><span class="label">Saved:</span> <span class="name">Revision 1</span></div>
<div id="options-wrapper" class="dbpanel-wrapper">
<div id="options-panel" class="dbpanel-panel">
<div class="dbpanel-leftedge"><!-- --></div>
<div class="dbpanel-rightedge"><!-- --></div>
<div class="dbpanel-botleftcorner"><!-- --></div>
<div class="dbpanel-botrightcorner"><!-- --></div>
<div class="dbpanel-middle">
<div class="dbpanel-inner">
<div class="dbpanel-top"><!-- --></div>
</div>
<div class="dbpanel-bottom"><!-- --></div>
</div>
<div id="padoptions">
<div id="options-viewhead">Shared view options:</div>
<input type="checkbox" id="options-colorscheck" />
<label for="options-colorscheck" id="options-colorslabel">Authorship colors</label>
<input type="checkbox" id="options-linenoscheck" />
<label for="options-linenoscheck" id="options-linenoslabel">Line numbers</label>
<div id="options-fontlabel">Display font:</div>
<select id="viewfontmenu"><option value="normal">Normal</option><option value="monospace">Monospaced</option></select>
<div id="options-viewexplain">These options affect everyone's view of the pad.</div>
<a id="options-close" href="javascript:void(0)">Hide</a>
</div>
</div>
</div><!-- /options-wrapper -->
</div><!-- /docbar -->
</div>
<div id="padmain">
<script>
$(document).ready(function () {
makeResizableHPane("#padeditor", "#vdraggie", "#padsidebar", 0, 0, 10, -22);
});
</script>
<div id="padeditor">
@ -263,12 +83,32 @@ var clientVars = {}; // ]]>
<tr>
<td><img src="/static/img/jun09/pad/editbar_groupleft.gif" width="2" height="24"></td>
<td class="editbarbutton editbargroupsfirst"><a href="javascript:void (window.pad&&pad.editbarClick('clearauthorship'));" title="Clear Authorship Colors"><img src="/static/img/jun09/pad/editbar_clearauthorship.gif"></a></td>
<td class="editbarbutton editbargroupsfirst"><a href="javascript:void (window.pad&&pad.editbarClick('showusers'));" title="Show connected users"> <img id="showusersicon" src="/static/img/mar11/editbar_showusers.gif"></a></td>
<td><img src="/static/img/jun09/pad/editbar_groupright.gif" width="2" height="24"></td>
<td>&nbsp;&nbsp;</td>
<td><img src="/static/img/jun09/pad/editbar_groupleft.gif" width="2" height="24"></td>
<td class="editbarbutton editbargroupsfirst"><a href="javascript:void (window.pad&&pad.editbarClick('clearauthorship'));" title="Clear Authorship Colors">
<img src="/static/img/jun09/pad/editbar_clearauthorship.gif"></a></td>
<td class="editbarbutton"><a href="javascript:void (window.pad&&pad.editbarClick('undo'));" title="Undo (ctrl-Z)"><img src="/static/img/jun09/pad/editbar_undo.gif"></a></td>
<td class="editbarbutton"><a href="javascript:void (window.pad&&pad.editbarClick('redo'));" title="Redo (ctrl-Y)"><img src="/static/img/jun09/pad/editbar_redo.gif"></a></td>
<td class="editbarbutton"><a href="javascript:void (window.pad&&pad.editbarClick('save'));" title="Save Revision"><img src="/static/img/jun09/pad/editbar_save.gif"></a></td>
<td class="editbarbutton"><a href="javascript:void (window.pad&&pad.editbarClick('embed'));" title="Embed this pad"> <img src="/static/img/mar11/editbar_embed.gif"></a></td>
<td>
<!-- The below is completely temporary and should be deleted CAKE -->
<script type="text/javascript">
function shinyshiny(){
$('#showusersicon').fadeOut('fast');
$('#showusersicon').fadeIn('fast');
$('#showusersicon').fadeOut('fast');
$('#showusersicon').fadeIn('fast');
}
</script>
<input type="button" onClick="shinyshiny();" value="shiny">
<!-- end of temporary section designed to be deleted -->
</td>
<td><img src="/static/img/jun09/pad/editbar_groupright.gif" width="2" height="24"></td>
<td>&nbsp;&nbsp;</td>
<td><img src="/static/img/jun09/pad/editbar_groupleft.gif" width="2" height="24"></td>
@ -276,98 +116,67 @@ var clientVars = {}; // ]]>
<td><img src="/static/img/jun09/pad/editbar_groupright.gif" width="2" height="24"></td>
</tr>
</table>
</div>
<div id="users">
<div id="userscont">
<table>
<!-- some example code so I can make the css -->
<td class="myuser"><a onclick="showColorPicker();" title="Change my name/color">John</td>
<div id="mycolorpicker">
<div>
<div class="pickerswatchouter n1"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n2"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n3"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n4"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n5"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n6"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n7"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n8"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n9"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n10"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n11"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n12"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n13"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n14"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n15"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n16"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n17"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n18"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n19"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n20"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n21"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n22"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n23"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n24"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n25"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n26"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n27"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n28"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n29"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n30"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n31"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n32"><div class="pickerswatch"><!-- --></div></div>
</div>
<div id="mycolorpickersave">Save</div>
<div id="mycolorpickercancel">Cancel</div>
</div>
<td class="user">&nbsp;&nbsp;&nbsp;</td>
<td class="user">Joe</td>
</table>
</div>
</div>
<div id="embed"></div>
</div>
</div>
</div>
<div id="editorcontainerbox">
<div id="editorloadingbox">Loading...</div>
<div id="editorloadingbox">Loading Etherpad Lite...</div>
<div id="editorcontainer"><!-- --></div>
</div>
</div><!-- /padeditor -->
<div id="vdraggie"><!-- --></div>
<div id="padsidebar">
<script>
$(document).ready(function () {
makeResizableVPane("#padusers", "#hdraggie", "#padchat", 75, 75);
});
</script>
<div id="padusers">
<div id="connectionstatus">
<!-- -->
</div>
<div id="myuser">
<div id="mycolorpicker">
<div>
<div class="pickerswatchouter n1"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n2"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n3"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n4"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n5"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n6"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n7"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n8"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n9"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n10"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n11"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n12"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n13"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n14"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n15"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n16"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n17"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n18"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n19"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n20"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n21"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n22"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n23"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n24"><div class="pickerswatch"><!-- --></div></div>
</div><div>
<div class="pickerswatchouter n25"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n26"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n27"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n28"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n29"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n30"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n31"><div class="pickerswatch"><!-- --></div></div>
<div class="pickerswatchouter n32"><div class="pickerswatch"><!-- --></div></div>
</div>
<div id="mycolorpickersave">Save</div>
<div id="mycolorpickercancel">Cancel</div>
</div>
<div id="myswatchbox"><div id="myswatch"><!-- --></div></div>
<div id="myusernameform"><input type="text" id="myusernameedit" disabled="disabled" /></div>
<div id="mystatusform"><input type="text" id="mystatusedit" disabled="disabled" /></div>
</div>
<div id="otherusers">
<div id="guestprompts"><!-- --></div>
<table id="otheruserstable" cellspacing="0" cellpadding="0" border="0">
<tr><td></td></tr>
</table>
<div id="nootherusers"><a href="javascript:void(0)">Invite</a> other users and they will show up here.</div>
</div>
<div id="userlistbuttonarea">
<a href="javascript:void(0)" id="sharebutton">Share</a>
</div>
</div> <!-- /padusers -->
<div id="hdraggie"><!-- --></div>
<div id="padchat">
<!-- <div id="chattop"><a href="#">View chat logs...</a></div> -->
<div id="chatlines">
<a href="javascript:void(0)" id="chatloadmore">Load more history...</a>
<div id="chatloadingmore">Loading history...</div>
</div>
<div id="chatbottom">
<div id="chatprompt">Chat:</div>
<div id="chatentryform"><input type="text" id="chatentrybox"/></div>
</div>
</div>
</div>
</div><!-- /padmain -->
</div><!-- /padpage -->
<div id="modaloverlay"><div id="modaloverlay-inner"><!-- --></div></div>
@ -386,11 +195,11 @@ var clientVars = {}; // ]]>
<h2 class="h2_userdup">Opened in another window.</h2>
<h2 class="h2_unauth">No Authorization.</h2>
<div id="disconnected_looping">
<p><b>We're having trouble talking to the EtherPad synchronization server.</b>
<p><b>We're having trouble talking to the EtherPad lite synchronization server.</b>
You may be connecting through an incompatible firewall or proxy server.</p>
</div>
<div id="disconnected_initsocketfail">
<p><b>We were unable to connect to the EtherPad synchronization server.</b>
<p><b>We were unable to connect to the EtherPad lite synchronization server.</b>
This may be due to an incompatibility with your web
browser or internet connection.</p>
</div>
@ -399,7 +208,7 @@ var clientVars = {}; // ]]>
If you'd like to use this window instead, you can reconnect.</p>
</div>
<div id="disconnected_unknown">
<p><b>Lost connection with the EtherPad synchronization
<p><b>Lost connection with the EtherPad lite synchronization
server.</b> This may be due to a loss of network connectivity.</p>
</div>
<div id="disconnected_slowcommit">
@ -418,72 +227,8 @@ var clientVars = {}; // ]]>
</div>
</div>
</div>
<div id="feedbackbox">
<div id="feedbackbox-tl"><!-- --></div>
<div id="feedbackbox-tr"><!-- --></div>
<div id="feedbackbox-bl"><!-- --></div>
<div id="feedbackbox-br"><!-- --></div>
<div id="feedbackbox-back"><!-- --></div>
<div id="feedbackbox-contents">
<div id="feedbackbox-contentsinner">
<p><strong>Great, we love feedback! What kind?</strong></p>
<ul id="uservoicelinks">
<li><a href="http://uservoice.etherpad.com/pages/17280-feature-requests" target="_blank">Feature Request</a></li>
<li><a href="http://uservoice.etherpad.com/pages/17285-bugs-and-problems" target="_blank">Bug Report</a></li>
<li><a href="http://uservoice.etherpad.com/pages/22732-how-are-you-using-etherpad-" target="_blank">How I'm Using It</a></li>
<li><a href="http://uservoice.etherpad.com/pages/22751-general-questions" target="_blank">Other Question</a></li>
<li><a href="http://uservoice.etherpad.com/pages/22733-general-feedback" target="_blank">Other Feedback</a></li>
</ul>
<p>These links will open UserVoice in a new window.</p>
<p id="feedbackemails">You can also send email to <a href="feedback"><tt>feedback</tt></a>, <a href="support"><tt>support</tt></a>, or <a href="bugs"><tt>bugs</tt></a> at <tt>etherpad.com</tt>.</p>
</div>
</div>
<a href="javascript:void(0)" id="feedbackbox-hide"><!-- --></a>
</div>
<div id="sharebox" class="modaldialog">
<div id="sharebox-inner" class="modaldialog-inner">
<a href="javascript:void(0)" id="sharebox-hide" class="modaldialog-hide"><!-- --></a>
<div id="sharebox-stripe" class="sharebox-stripe-private">
<div class="public">
<strong>Public Pad:</strong> This pad is accessible to anyone who
visits its URL. To make it private, <a href="javascript:void(0)" class="setsecurity">change security settings</a>.
</div>
<div class="private">
<strong>Private Pad:</strong> This pad is only accessible to team account-holders. To allow anyone to access it, <a href="javascript:void(0)" class="setsecurity">change security settings</a>.
</div>
</div>
<div><label>Paste link over email or IM:</label></div>
<input class="sharebox-url" type="text" readonly="readonly" value="http://localhost:9000/test"/>
<div><label>...or for read only access paste this link:</label></div>
<input class="sharebox-url" type="text" readonly="readonly" value="http://localhost:9000/ep/pad/view/ro.wG$4G/latest"/>
<h1><a class="expand-collapse" id="sharebox-sendmail-form-expander" href="javascript:" onclick="$('#sharebox-sendmail-form').toggle();$('#sharebox-sendmail-form-expander').toggleClass('expanded');">or send an email invitation...</a></h1>
<div id="sharebox-sendmail-form" style="display:none">
<table>
<tr>
<th><label>To:</label></th>
<td><input type="text" id="sharebox-to" class="modalfield" /></td>
</tr>
<tr>
<th><label>Subject:</label></th>
<td><input type="text" id="sharebox-subject" class="modalfield" /></td>
</tr>
<tr>
<th><label>Message:</label></th>
<td><textarea id="sharebox-message" rows="6" cols="40" class="modalfield"></textarea></td>
</tr>
</table>
<a href="javascript:void(0)" id="sharebox-send"><!-- --></a>
</div>
<div id="sharebox-response"><!-- --></div>
<div style="clear: both;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<form id="reconnectform"
method="post"
@ -495,7 +240,6 @@ var clientVars = {}; // ]]>
name="diagnosticInfo" />
<input type="hidden" class="missedChanges" name="missedChanges" />
</form>
</body>
</html>