summaryrefslogtreecommitdiffstats
path: root/etherpad/src/themes/default
diff options
context:
space:
mode:
Diffstat (limited to 'etherpad/src/themes/default')
-rw-r--r--etherpad/src/themes/default/templates/500_body.ejs26
-rw-r--r--etherpad/src/themes/default/templates/admin/pluginmanager.ejs74
-rw-r--r--etherpad/src/themes/default/templates/email/padinvite.ejs18
-rw-r--r--etherpad/src/themes/default/templates/framed/framedfooter.ejs13
-rw-r--r--etherpad/src/themes/default/templates/framed/framedheader-pro.ejs78
-rw-r--r--etherpad/src/themes/default/templates/framed/framedheader.ejs13
-rw-r--r--etherpad/src/themes/default/templates/framed/framedpage-pro.ejs31
-rw-r--r--etherpad/src/themes/default/templates/framed/framedpage.ejs37
-rw-r--r--etherpad/src/themes/default/templates/html.ejs43
-rw-r--r--etherpad/src/themes/default/templates/main/home.ejs62
-rw-r--r--etherpad/src/themes/default/templates/main/pro_signup_body.ejs71
-rw-r--r--etherpad/src/themes/default/templates/misc/pad_default.ejs16
-rw-r--r--etherpad/src/themes/default/templates/notice.ejs16
-rw-r--r--etherpad/src/themes/default/templates/pad/create_body.ejs26
-rw-r--r--etherpad/src/themes/default/templates/pad/pad_body2.ejs505
-rw-r--r--etherpad/src/themes/default/templates/pad/pad_iphone_body.ejs29
-rw-r--r--etherpad/src/themes/default/templates/pad/padview_body.ejs141
-rw-r--r--etherpad/src/themes/default/templates/page.ejs135
-rw-r--r--etherpad/src/themes/default/templates/pro-account/recover.ejs48
-rw-r--r--etherpad/src/themes/default/templates/pro-account/sign-in.ejs57
-rw-r--r--etherpad/src/themes/default/templates/pro/account/account-welcome-email.ejs32
-rw-r--r--etherpad/src/themes/default/templates/pro/account/forgot-password-email.ejs22
-rw-r--r--etherpad/src/themes/default/templates/pro/account/forgot-password.ejs66
-rw-r--r--etherpad/src/themes/default/templates/pro/account/my-account.ejs67
-rw-r--r--etherpad/src/themes/default/templates/pro/account/signin.ejs81
-rw-r--r--etherpad/src/themes/default/templates/pro/admin/account-manager.ejs59
-rw-r--r--etherpad/src/themes/default/templates/pro/admin/admin-template.ejs31
-rw-r--r--etherpad/src/themes/default/templates/pro/admin/delete-account.ejs35
-rw-r--r--etherpad/src/themes/default/templates/pro/admin/manage-account.ejs64
-rw-r--r--etherpad/src/themes/default/templates/pro/admin/new-account.ejs86
-rw-r--r--etherpad/src/themes/default/templates/pro/padlist/pro-padlist.ejs49
-rw-r--r--etherpad/src/themes/default/templates/pro/pro_home.ejs103
32 files changed, 2134 insertions, 0 deletions
diff --git a/etherpad/src/themes/default/templates/500_body.ejs b/etherpad/src/themes/default/templates/500_body.ejs
new file mode 100644
index 0000000..34549ed
--- /dev/null
+++ b/etherpad/src/themes/default/templates/500_body.ejs
@@ -0,0 +1,26 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.setHtmlTitle("EtherPad Internal Server Error"); %>
+
+<% if (trace) { %>
+ <pre style="background: #fff; font-family: monospace; padding: 1em; border: 1px solid red;
+ margin: 1em; font-size: 1.25em;"><%= trace %></pre>
+<% } else { %>
+ <div id="errorpage" class="fpcontent">
+ <div class="error500">
+ <p>Oops! A server error occured. It's been logged.</p>
+ <p>Please email &lt;support@pad.spline.inf.fu-berlin.de&gt; if this persists.</p>
+ </div>
+ </div>
+<% } %>
+
diff --git a/etherpad/src/themes/default/templates/admin/pluginmanager.ejs b/etherpad/src/themes/default/templates/admin/pluginmanager.ejs
new file mode 100644
index 0000000..cc47928
--- /dev/null
+++ b/etherpad/src/themes/default/templates/admin/pluginmanager.ejs
@@ -0,0 +1,74 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<%
+ template.inherit('page.ejs');
+ helpers.setHtmlTitle("EtherPad: Manage plugins");
+ helpers.includeCss("admin/pluginmanager.css");
+
+ function inArray(item, arr) {
+ for (var i = 0; i < arr.length; i++)
+ if (arr[i] == item)
+ return true;
+ return false;
+ }
+%>
+
+<% template.define('docBarTitle', function() { var ejs_data=''; %>
+ <td id="docbarpadtitle"><span>Plugin manager</span></td>
+<% return ejs_data; }); %>
+
+
+<% template.define('docBarItems', function() { var ejs_data=''; %>
+ <%: plugins.callHookStr('docbarItemsPluginManager', {}, '', '<td class="docbarbutton">', '</td>'); %>
+<% return ejs_data; }); %>
+
+<% template.define('contentArea', function() { var ejs_data=''; %>
+ <div id="editorcontainer">
+ <table>
+ <tr>
+ <th>Module name</th>
+ <th>Status</th>
+ <th></th>
+ </tr>
+ <% for (var plugin in plugins.pluginModules) { %>
+ <tr>
+ <td class="mousover_parent">
+ <%= plugin %>
+ <div class="mouseover_child">
+ <%= plugins.pluginModules[plugin].description %>
+ </div>
+ </td>
+ <td>
+ <% if (plugins.plugins[plugin] !== undefined) { %>
+ Installed
+ <% } else { %>
+ Not installed
+ <% } %>
+ </td>
+ <td>
+ <% if (plugins.plugins[plugin] !== undefined) { %>
+ <a href="/ep/admin/pluginmanager/?plugin=<%= plugin %>&action=uninstall">Uninstall</a>
+ <a href="/ep/admin/pluginmanager/?plugin=<%= plugin %>&action=reinstall">Reinstall</a>
+ <% if (plugins.plugins[plugin].configLink !== undefined) { %>
+ <a href="<%= plugins.plugins[plugin].configLink %>">Configure</a>
+ <% } %>
+ <% } else { %>
+ <a href="/ep/admin/pluginmanager/?plugin=<%= plugin %>&action=install">Install</a>
+ <% } %>
+ </td>
+ </tr>
+ <% } %>
+ </table>
+ </div>
+<% return ejs_data; }); %>
diff --git a/etherpad/src/themes/default/templates/email/padinvite.ejs b/etherpad/src/themes/default/templates/email/padinvite.ejs
new file mode 100644
index 0000000..0f729e3
--- /dev/null
+++ b/etherpad/src/themes/default/templates/email/padinvite.ejs
@@ -0,0 +1,18 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><%= body %>
+
+--
+Sent by <%= request.host %> at the request of an EtherPad user.
+Do not reply to this email.
+Report abuse to: support@pad.spline.inf.fu-berlin.de
diff --git a/etherpad/src/themes/default/templates/framed/framedfooter.ejs b/etherpad/src/themes/default/templates/framed/framedfooter.ejs
new file mode 100644
index 0000000..7994e38
--- /dev/null
+++ b/etherpad/src/themes/default/templates/framed/framedfooter.ejs
@@ -0,0 +1,13 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
diff --git a/etherpad/src/themes/default/templates/framed/framedheader-pro.ejs b/etherpad/src/themes/default/templates/framed/framedheader-pro.ejs
new file mode 100644
index 0000000..afb8a67
--- /dev/null
+++ b/etherpad/src/themes/default/templates/framed/framedheader-pro.ejs
@@ -0,0 +1,78 @@
+<% /*
+Copyright 2009 Google Inc.
+Copyright 2010 Pita, Peter Martischka <petermartischka@googlemail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.addBodyClass("pro-withtopbar"); %>
+
+<div id="pro-topbar">
+
+ <div id="pro-topbar-inner">
+
+ <% if (account) { %>
+ <div id="accountnav">
+ <%= toHTML(account.email) %>
+ <a href="/ep/account/sign-out">(sign out)</a>
+ </div>
+ <% } else { %>
+ <% // TODO: eventually have sign-in link here. %>
+ <% } %>
+
+ <div id="org-name">
+ <a href="/">
+ <%= proDomainOrgName %>
+ </a>
+
+ <% if (isAnEtherpadAdmin) { %>
+ <span style="color: #ff0; padding-left: 2em; font-weight: bold;">INVISIBLE ADMIN MODE</span>
+ <% } %>
+ </div>
+
+ <div style="clear: both;"><!-- --></div>
+
+ </div>
+</div>
+
+<% function renderProTopNav() {
+ var links = [
+ ['/', 'Home', 'home'],
+ ['/ep/padlist/', 'Pads', 'padlist'],
+ ['/ep/account/', 'My Account', 'account'],
+ ];
+ if (account && account.isAdmin) {
+ links.push(['/ep/admin/', 'Admin', 'admin']);
+ }
+ var ul = UL();
+ links.forEach(function(l) {
+ var c = l[2];
+ var selc = (request.path == l[0] || navSelection == c) ? " selected" : "";
+ ul.push(LI({className: 'topnav_'+c+selc},
+ A({href: request.scheme + '://'+request.host+l[0]}, l[1])));
+ });
+ return ul;
+} %>
+
+ <%= pneTrackerHtml %>
+
+<div id="pro-topnav">
+ <div id="pro-topnav-inner">
+ <%= renderProTopNav() %>
+ <%= helpers.clearFloats() %>
+ </div>
+</div>
+
+<!--
+<div id="shuttingdown">
+ <strong style="color:red">Note: EtherPad.com is shutting down March 31, 2010.</strong>
+ <a href="http://<%= fullSuperdomain %>/ep/blog/posts/google-acquires-appjet">(more info)</a>
+</div>
+-->
diff --git a/etherpad/src/themes/default/templates/framed/framedheader.ejs b/etherpad/src/themes/default/templates/framed/framedheader.ejs
new file mode 100644
index 0000000..d6c25cb
--- /dev/null
+++ b/etherpad/src/themes/default/templates/framed/framedheader.ejs
@@ -0,0 +1,13 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %> \ No newline at end of file
diff --git a/etherpad/src/themes/default/templates/framed/framedpage-pro.ejs b/etherpad/src/themes/default/templates/framed/framedpage-pro.ejs
new file mode 100644
index 0000000..b3acb07
--- /dev/null
+++ b/etherpad/src/themes/default/templates/framed/framedpage-pro.ejs
@@ -0,0 +1,31 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><%
+ helpers.setBodyId("framedpagebody");
+ helpers.includeCss("etherpad.css");
+ helpers.includeCss("pro/framedpage-pro.css");
+ helpers.addBodyClass("pro-body");
+%>
+
+<div id="container">
+
+<% if (helpers.isHeaderVisible()) { %>
+ <%= renderHeader() %>
+<% } %>
+
+<%= renderGlobalProNotice() %>
+
+<%= getContentHtml() %>
+
+</div>
+
diff --git a/etherpad/src/themes/default/templates/framed/framedpage.ejs b/etherpad/src/themes/default/templates/framed/framedpage.ejs
new file mode 100644
index 0000000..b1590f8
--- /dev/null
+++ b/etherpad/src/themes/default/templates/framed/framedpage.ejs
@@ -0,0 +1,37 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><%
+ helpers.setBodyId("framedpagebody");
+ helpers.includeCss("etherpad.css");
+ helpers.includeCss("framedpage.css");
+
+ if (isProDomainRequest) {
+ helpers.includeCss("pro/pro-page.css");
+ }
+
+ if (request.path != "/") {
+ helpers.addBodyClass("nothome");
+ }
+%>
+
+<div id="container">
+
+<% if (helpers.isHeaderVisible()) { %>
+ <%= renderHeader() %>
+<% } %>
+
+<%= getContentHtml() %>
+
+<%= renderFooter() %>
+
+</div>
diff --git a/etherpad/src/themes/default/templates/html.ejs b/etherpad/src/themes/default/templates/html.ejs
new file mode 100644
index 0000000..056d7a7
--- /dev/null
+++ b/etherpad/src/themes/default/templates/html.ejs
@@ -0,0 +1,43 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><!DOCTYPE html PUBLIC
+ "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Language" content="en-us" />
+ <%= helpers.robotsMeta() %>
+ <title><%= helpers.htmlTitle() %></title>
+ <base href="<%= helpers.baseHref() %>" />
+
+ <!-- CSS -->
+ <%= helpers.cssIncludes() %>
+
+ <%= helpers.headExtra() %>
+
+ </head>
+
+ <body id="<%= helpers.bodyId() %>" class="<%= helpers.bodyClasses() %>">
+
+ <%= bodyHtml %>
+
+<!-- javascript -->
+
+<%= helpers.clientVarsScript() %>
+<%= helpers.jsIncludes() %>
+<%= helpers.googleAnalytics() %>
+
+ </body>
+</html>
diff --git a/etherpad/src/themes/default/templates/main/home.ejs b/etherpad/src/themes/default/templates/main/home.ejs
new file mode 100644
index 0000000..7041bee
--- /dev/null
+++ b/etherpad/src/themes/default/templates/main/home.ejs
@@ -0,0 +1,62 @@
+<% /*
+Copyright 2009 Google Inc.
+Copyright 2010 Pita, Peter Martischka <petermartischka@googlemail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.setHtmlTitle("SplinePad [beta]: Open-Sourced!"); %>
+
+<% helpers.includeCss("home-opensource.css"); %>
+
+<div id="home">
+ <div id="title">
+ SplinePad
+ </div>
+
+ <div id="buttons">
+ <a id="home-newpad" href="/ep/pad/newpad">
+ Create new pad
+ </a>
+ <% if (isProAccountEnabled()) { %>
+ <a id="home-newteam" href="/ep/pro-signup/">
+ Create team site
+ </a>
+ <% } %>
+ </div>
+
+ <div id="tos">
+ <h1>
+ <b>Terms of service and Privacy notice</b>
+ </h1>
+
+ <p>
+ <b>Privacy:</b> We guarantee that we will not intentionally hand
+ over your data to any third party.
+ </p>
+
+ <p>
+ <b>Terms:</b> By using splinepad, you certify to agree to the
+ following terms of service: We are not responsible, and cannot
+ be held liable for any loss or damages that may be caused by the
+ result of our service.
+ </p>
+
+ <p>
+ <b>In short:</b> We love the "Datenschutzgesetz" and if
+ something is wrong, we didn't do it.
+ </p>
+
+ Have fun with splinepad.
+ </div>
+
+</div>
+
+
diff --git a/etherpad/src/themes/default/templates/main/pro_signup_body.ejs b/etherpad/src/themes/default/templates/main/pro_signup_body.ejs
new file mode 100644
index 0000000..ff35dfc
--- /dev/null
+++ b/etherpad/src/themes/default/templates/main/pro_signup_body.ejs
@@ -0,0 +1,71 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss('pro-signup.css') %>
+
+<div class="fpcontent">
+ <div class="pro-signup">
+
+ <h1>EtherPad Professional for Teams</h1>
+
+ <div id="about">
+
+ <p>Create a team site in order to keep track of pads and share
+ them privately within your team.</p>
+
+ </div>
+
+ <form id="pro-act-form"
+ method="post" action="<%= request.path %>">
+
+ <%= errorDiv() %>
+
+ <div>
+ <div class="inputdiv">
+ <h3>Your team site will live at:</h3>
+
+ <%= input("subdomain") %>.<%= request.host %>/
+ </div>
+ <div class="inputhelp">
+ This is where you and members of your team will sign
+ in.
+ </div>
+ <%= helpers.clearFloats() %>
+ </div>
+
+ <br/><br/>
+
+ <div>
+ <div class="inputdiv">
+ <h3>Administrator account</h3>
+ <%= inf("fullName", "Full Name") %>
+ <%= inf("email", "Email") %>
+ </div>
+ <div class="inputhelp">
+ <p>Instructions for choosing a password and signing in will
+ be emailed here.</p>
+ <p>Please use your <strong>*.fu-berlin.de</strong> address.</p>
+ </div>
+ <%= helpers.clearFloats() %>
+ </div>
+
+ <br/>
+
+ <p><button type="submit" id="createbutton">Create team site now</button></p>
+
+ </form>
+
+ <p style="font-size: 80%;">Existing users: <a href="/ep/pro-account/sign-in">sign in
+ here</a></p>
+ </div>
+</div>
+
diff --git a/etherpad/src/themes/default/templates/misc/pad_default.ejs b/etherpad/src/themes/default/templates/misc/pad_default.ejs
new file mode 100644
index 0000000..96b7e25
--- /dev/null
+++ b/etherpad/src/themes/default/templates/misc/pad_default.ejs
@@ -0,0 +1,16 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+Welcome to EtherPad!
+
+This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!
diff --git a/etherpad/src/themes/default/templates/notice.ejs b/etherpad/src/themes/default/templates/notice.ejs
new file mode 100644
index 0000000..311694f
--- /dev/null
+++ b/etherpad/src/themes/default/templates/notice.ejs
@@ -0,0 +1,16 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<div id="notice" class="fpcontent">
+ <%= content %>
+</div>
diff --git a/etherpad/src/themes/default/templates/pad/create_body.ejs b/etherpad/src/themes/default/templates/pad/create_body.ejs
new file mode 100644
index 0000000..742821f
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pad/create_body.ejs
@@ -0,0 +1,26 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.setHtmlTitle("SplinePad [beta]: Create a new pad?"); %>
+
+<div id="createpadpage" class="fpcontent">
+ <form action="<%= request.path %>" method="post">
+
+ <p><tt id="padurl">http://<%= request.host %>/<%= toHTML(padId) %></tt></p>
+
+ <br/>
+ <p>There is no SplinePad document here. Would you like to create one?</p>
+
+ <input type="hidden" name="padId" value="<%= toHTML(padId) %>" />
+ <input type="submit" id="createPad" value="Create Pad" />
+ </form>
+</div>
diff --git a/etherpad/src/themes/default/templates/pad/pad_body2.ejs b/etherpad/src/themes/default/templates/pad/pad_body2.ejs
new file mode 100644
index 0000000..5c886fb
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pad/pad_body2.ejs
@@ -0,0 +1,505 @@
+<% /*
+Copyright 2009 Google Inc.
+Copyright 2010 Pita, Peter Martischka
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+
+<%
+ template.inherit('page.ejs');
+
+ helpers.setHtmlTitle("EtherPad: "+pageTitle);
+ helpers.includeJs("ace.js");
+ helpers.includeJs("collab_client.js");
+ helpers.includeJs("pad_userlist.js");
+ helpers.includeJs("pad_chat.js");
+ helpers.includeJs("pad_impexp.js");
+ helpers.includeJs("pad_savedrevs.js");
+ helpers.includeJs("pad_connectionstatus.js");
+
+ var padUrlAttrValue = request.url.split("?", 1)[0].replace(/\"/g, '&quot;');
+
+ function exportLink(type, n, label, requiresOffice, url, title) {
+ url = url || '/ep/pad/export/'+localPadId+'/latest?format='+type;
+ var classes = ["exportlink", "exporthref"+type, "n"+n];
+ if (requiresOffice && !hasOffice) {
+ classes.push("disabledexport");
+ }
+ else {
+ classes.push("requiresoffice");
+ }
+ var pieces = ['<a'];
+ pieces.push(' class="', classes.join(' '), '"');
+ pieces.push(' target="_blank"');
+ pieces.push(' href="', url, '"');
+ if (title) {
+ pieces.push(' title="', title.replace(/\"/g, "&quot;"), '"'); //"
+ }
+ pieces.push('>', label);
+ /* if (title) {
+ pieces.push('<sup>?</sup>');
+ }*/
+ pieces.push('</a>');
+ return pieces.join('');
+ }
+%>
+
+
+<% template.define('docBarTitle', function() { var ejs_data=''; %>
+ <td id="docbarpadtitle"><span><%= initialTitle %></span></td>
+<% return ejs_data; }); %>
+
+
+<% template.define('docBarTitleEditor', function() { var ejs_data=''; %>
+ <% if (isProAccountHolder) { %>
+ <div id="docbarrenamelink">
+ <a href="javascript:void(0)">(rename)</a>
+ </div>
+ <% } /* isProAccountHolder */ %>
+ <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>
+<% return ejs_data; }); %>
+
+
+<% template.define('docBarItems', function() { var ejs_data=''; %>
+ <%: plugins.callHookStr('docbarItemsPad', {}, '', '<td class="docbarbutton">', '</td>'); %>
+ <% if (isProAccountHolder) { %>
+ <td id="docbarsecurity-outer" class="docbarbutton">
+ <a href="javascript:void(0)" id="docbarsecurity">
+ <img src="/static/img/jun09/pad/icon_security.gif">Security
+ </a>
+ </td>
+ <% } /* isProAccountHolder */ %>
+ <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/<%= localPadId %>/latest" id="docbarslider">
+ <img src="/static/img/jun09/pad/icon_time_slider.gif">Time&nbsp;Slider</a>
+ </td>
+<% return ejs_data; }); %>
+
+
+<% template.define('docBarDropdowns', function() { var ejs_data=''; %>
+ <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="<%= encodeURIComponent(localPadId) %>" />
+ <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">
+ <%= exportLink('html', 1, 'HTML', false) %>
+ <%= exportLink('txt', 2, 'Plain text', false) %>
+ <%= exportLink('link', 3, 'Bookmark file', false, '/ep/pad/linkfile?padId='+localPadId, 'This will save a file that, when opened, takes you to this pad.') %>
+ <%= exportLink('doc', 4, 'Microsoft Word', true) %>
+ <%= exportLink('pdf', 5, 'PDF', true) %>
+ <%= exportLink('odt', 6, 'OpenDocument', true) %>
+ </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 -->
+ <% if (isProAccountHolder) { %>
+ <div id="security-wrapper" class="dbpanel-wrapper">
+ <div id="security-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="padsecurity">
+ <div id="security-access">
+ <div id="security-accesshead">Pad Access:</div>
+ <input type="radio" name="padaccess" id="access-private" value="deny"/>
+ <label for="access-private" id="access-private-label"><strong>Private</strong> (Team account-holders only)</label>
+ <input type="radio" name="padaccess" id="access-public" value="allow"/>
+ <label for="access-public" id="access-public-label"><strong>Public</strong> (Allow Internet guests)</label>
+ </div>
+ <div id="security-password">
+ <div id="security-passhead">Password:</div>
+ <div id="security-passbody">
+ <div class="nopassword" id="password-nonedit">
+ <div id="password-display">None</div>
+ <a href="javascript:void(0)" id="password-setlink">Set...</a>
+ <a href="javascript:void(0)" id="password-clearlink">Clear</a>
+ </div>
+ <div id="password-inedit">
+ <a href="javascript:void(0)" id="password-savelink">Save</a>
+ <a href="javascript:void(0)" id="password-cancellink">Cancel</a>
+ <input type="text" id="security-passwordedit" maxlength="31" />
+ </div>
+ </div>
+ </div>
+ <a id="security-close" href="javascript:void(0)">Hide</a>
+ </div>
+ </div>
+ </div><!-- /security-wrapper -->
+ <% } /* isProAccountHolder */ %>
+<% return ejs_data; }); %>
+
+
+<% template.define('sideBar', function() { var ejs_data=''; %>
+ <div id="padusers">
+ <div id="connectionbox" class="cboxconnecting">
+ <div id="connectionboxinner">
+ <div class="connecting">
+ Connecting...
+ </div>
+ <div class="reconnecting">
+ Reestablishing connection...
+ </div>
+ <div class="disconnected">
+ <h2 class="h2_disconnect">Disconnected.</h2>
+ <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>
+ 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>
+ This may be due to an incompatibility with your web
+ browser or internet connection.</p>
+ </div>
+ <div id="disconnected_userdup">
+ <p><b>You seem to have opened this pad in another browser window.</b>
+ 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
+ server.</b> This may be due to a loss of network connectivity.</p>
+ </div>
+ <div id="disconnected_slowcommit">
+ <p><b>Server not responding.</b> This may be due to network connectivity issues or high load on the server.</p>
+ </div>
+ <div id="disconnected_unauth">
+ <p>Your browser's credentials or permissions have changed while viewing this pad. Try reconnecting.</p>
+ </div>
+ <div id="reconnect_advise">
+ <p>If this continues to happen, please <a target="_blank" href="/ep/support">let us know</a>
+ (opens in new window).</p>
+ </div>
+ <div id="reconnect_form">
+ <button id="forcereconnect">Reconnect Now</button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <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>
+<% return ejs_data; }); %>
+
+
+<% template.define('editBarItemsLeft', function() { var ejs_data=''; %>
+ <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('bold'));" title="Bold (ctrl-B)"><img src="/static/img/jun09/pad/editbar_bold.gif"></a></td>
+ <td class="editbarbutton"> <a href="javascript:void (window.pad&&pad.editbarClick('italic'));" title="Italics (ctrl-I)"><img src="/static/img/jun09/pad/editbar_italic.gif"></a></td>
+ <td class="editbarbutton"> <a href="javascript:void (window.pad&&pad.editbarClick('underline'));" title="Underline (ctrl-U)"><img src="/static/img/jun09/pad/editbar_underline.gif"></a></td>
+ <td class="editbarbutton"> <a href="javascript:void (window.pad&&pad.editbarClick('strikethrough'));" title="Strikethrough"><img src="/static/img/jun09/pad/editbar_strikethrough.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('insertunorderedlist'));" title="Toggle Bullet List"><img src="/static/img/jun09/pad/editbar_insertunorderedlist.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('indent'));" title="Indent List"><img src="/static/img/jun09/pad/editbar_indent.gif"></a></td>
+ <td class="editbarbutton"><a href="javascript:void (window.pad&&pad.editbarClick('outdent'));" title="Unindent List"><img src="/static/img/jun09/pad/editbar_outdent.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><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('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><img src="/static/img/jun09/pad/editbar_groupright.gif" width="2" height="24"></td>
+<% return ejs_data; }); %>
+
+
+<% template.define('editBarItemsRight', function() { var ejs_data=''; %>
+ <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('save'));" title="Save Revision"><img src="/static/img/jun09/pad/editbar_save.gif"></a></td>
+ <td><img src="/static/img/jun09/pad/editbar_groupright.gif" width="2" height="24"></td>
+<% return ejs_data; }); %>
+
+
+<% template.define('contentArea', function() { var ejs_data=''; %>
+ <div id="editorloadingbox">Loading...</div>
+ <div id="editorcontainer"><!-- --></div>
+<% return ejs_data; }); %>
+
+
+<% template.define('modals', function() { var ejs_data=''; %>
+ <div id="modaloverlay"><div id="modaloverlay-inner"><!-- --></div></div>
+
+ <div id="mainmodals">
+ <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>
+ <%/* <a href="javascript:void(0)" id="feedbackbox-send"><!-- --></a>
+ <input type="text" id="feedbackbox-email" class="modalfield" />
+ <textarea id="feedbackbox-message" rows="6" cols="40" class="modalfield"></textarea>
+ <div id="feedbackbox-response"><!-- --></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">
+ <div id="sharebox-inner">
+ <a href="javascript:void(0)" id="sharebox-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 id="sharebox-forms">
+ <div id="sharebox-pastelink">Paste link over email or IM:</div>
+ <div id="sharebox-orsend">or send an email invitation...</div>
+ <a href="javascript:void(0)" id="sharebox-send"><!-- --></a>
+ <input id="sharebox-url" type="text" readonly="readonly" value="<%=padUrlAttrValue%>"/>
+ <input type="text" id="sharebox-to" class="modalfield" />
+ <input type="text" id="sharebox-subject" class="modalfield" />
+ <textarea id="sharebox-message" rows="6" cols="40" class="modalfield"></textarea>
+ <div id="sharebox-fieldname-to">To</div>
+ <div id="sharebox-fieldname-subject">Subject</div>
+ <div id="sharebox-fieldname-message">Message</div>
+ <div id="sharebox-dislink"><!-- --></div>
+ </div>
+ <div id="sharebox-shownwhenexpanded">
+ <div id="sharebox-response"><!-- --></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <% if (request.params.djs) { %>
+ <div id="djs"><!-- --></div>
+ <% } %>
+
+ <form id="reconnectform"
+ method="post"
+ action="/ep/pad/reconnect"
+ accept-charset="UTF-8"
+ style="display: none;">
+ <input type="hidden" class="padId" name="padId" />
+ <input type="hidden" class="diagnosticInfo"
+ name="diagnosticInfo" />
+ <input type="hidden" class="missedChanges" name="missedChanges" />
+ </form>
+
+<% return ejs_data; }); %>
diff --git a/etherpad/src/themes/default/templates/pad/pad_iphone_body.ejs b/etherpad/src/themes/default/templates/pad/pad_iphone_body.ejs
new file mode 100644
index 0000000..96279ce
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pad/pad_iphone_body.ejs
@@ -0,0 +1,29 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<div style="font-size: 4em; font-family: sans-serif; text-align: center;">
+
+ <p>EtherPad is not yet fully-functional on the iPhone.</p>
+
+ <a style="display: block; padding: 1em; border: 3px solid #333; background: #ddd; margin: 1em; -webkit-border-radius: 1em;"
+ href="/ep/pad/view/<%= padId %>/latest">
+ View Read-Only
+ </a>
+
+ <a style="display: block; padding: 1em; border: 3px solid #333; background: #ddd; margin: 1em; -webkit-border-radius: 1em;"
+ href="/<%= padId %>?skipIphoneCheck=1">
+ Proceed to Editor<br/>
+ <span style="font-size: .6em;">(may not be fully-functional)</span>
+ </a>
+
+</div>
diff --git a/etherpad/src/themes/default/templates/pad/padview_body.ejs b/etherpad/src/themes/default/templates/pad/padview_body.ejs
new file mode 100644
index 0000000..e18ff12
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pad/padview_body.ejs
@@ -0,0 +1,141 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><%
+ helpers.addBodyClass(bodyClass);
+ helpers.setHtmlTitle(toHTML(padId + " / " + rlabel));
+ helpers.setBodyId("padviewbody");
+ helpers.includeCss("broadcast.css");
+ helpers.setRobotsPolicy({index: false, follow: false})
+ helpers.includeJQuery();
+ helpers.includeCometJs();
+ helpers.includeJs("json2.js");
+ helpers.includeJs("pad_utils.js");
+ helpers.includeJs("broadcast_slider.js");
+ helpers.includeJs("broadcast_revisions.js");
+ helpers.includeJs("easysync2_client.js");
+ helpers.includeJs("domline_client.js");
+ helpers.includeJs("linestylefilter_client.js");
+ helpers.includeJs("cssmanager_client.js");
+ helpers.includeJs("broadcast.js");
+ helpers.addToHead('\n<style type="text/css" title="dynamicsyntax"></style>\n');
+
+ function dfmt(t) {
+ var d = new Date(t);
+ return d.toString();
+ }
+
+ function exportOption(type, label, requiresOffice, url, title) {
+ url = url || '/ep/pad/export/'+padId+'/'+revisionId+'?format='+type;
+ var aStart =
+ ['<a',
+ (requiresOffice && ! hasOffice ? ' class="disabledexport"' : ' href="'+url+'"'),
+ '>'].join('');
+ var r = ['<div class="exportlink" id="export', type, '"'];
+ if (title) {
+ r.push(' title="'+title+'"');
+ }
+ r.push('>');
+ r.push('<table cellspacing="0" cellpadding="0" border="0">');
+ r.push('<tr>');
+ r.push('<td class="exportpic" valign="middle">');
+ r.push(aStart, '<img src="/static/img/may09/'+type+'.gif" />', '</a>');
+ r.push('<td class="labelcell" valign="middle">');
+ r.push(aStart, label, '</a>');
+ if (title) {
+ r.push('<sup>?</sup>')
+ }
+ r.push('</td>');
+ r.push('</tr>');
+ r.push('</table>');
+ r.push('</div>');
+ return r.join('');
+ }
+%>
+
+<div id="padpage">
+<div id="topbar" style="margin: 7px; margin-top: 0px;">
+ <div id="topbarleft"><!-- --></div>
+ <div id="topbarright"><!-- --></div>
+ <div id="topbarcenter">
+ <a href="/" id="topbaretherpad">EtherPad</a>
+ </div>
+<% if (isProAccountHolder) { %>
+ <div id="accountnav"><%= toHTML(account.email) %>
+ <a href="/ep/account/sign-out">(sign out)</a>
+ </div>
+<% } else if (isPro) { %>
+ <div id="accountnav">
+ <a href="<%= signinUrl %>">sign in</a>
+ </div>
+<% } %>
+</div>
+
+<div id="timeslider-wrapper">
+<div id="error" style="display: none">It looks like you're having connection troubles. <a href="/ep/pad/view/<%= padId %>/latest">Reconnect now</a>.</div>
+<div id="timeslider" unselectable="on" style="display: none">
+ <div id="timeslider-left"></div>
+ <div id="timeslider-right"></div>
+ <div id="timer"><%= dateFormat %></div>
+ <div id="timeslider-slider">
+ <div id="ui-slider-handle">
+
+ </div>
+ <div id="ui-slider-bar">
+
+ </div>
+ </div>
+ <div id="playpause_button">
+ <div id="playpause_button_icon" class=""></div>
+ </div>
+ <div id="steppers">
+ <div class="stepper" id="leftstar"></div>
+ <div class="stepper" id="rightstar"></div>
+ <div class="stepper" id="leftstep"></div>
+ <div class="stepper" id="rightstep"></div>
+ </div>
+</div>
+</div>
+<div id="rightbars">
+<div id="rightbar"><a id="viewlatest" href="/ep/pad/view/<%= padId %>/latest">
+<% if (revisionId != "latest") { %>View latest content<% } else { %>Viewing latest content<% } %></a><br>
+<a class="tlink" href="/ep/pad/view/<%= padId %>/<%= revisionId %>" thref="/ep/pad/view/<%= padId %>/rev.%revision%">Link to this version</a>
+<% if (readOnly === false) { %><br><a class="tlink" href="/ep/pad/view/<%= roPadId %>/<%= revisionId %>" thref="/ep/pad/view/<%= roPadId %>/rev.%revision%">Link to read-only page</a><br><a href="/<%= padId %>">Edit this pad</a><% } %>
+<h2>Download as</h2>
+<img src="/static/img/may09/html.gif"><a class="tlink" href="/ep/pad/export/<%= padId %>/<%= revisionId %>?format=html" thref="/ep/pad/export/<%= padId %>/rev.%revision%?format=html">HTML</a><br>
+<img src="/static/img/may09/txt.gif" ><a class="tlink" href="/ep/pad/export/<%= padId %>/<%= revisionId %>?format=html" thref="/ep/pad/export/<%= padId %>/rev.%revision%?format=txt" >Plain text</a><br>
+
+
+</div>
+<div id="legend">
+<h2>Authors</h2>
+<table id="authorstable" border="0" cellspacing="0" cellpadding="0">
+
+</table>
+</div>
+
+</div>
+<div id="padmain"
+ <% if (request.userAgent.isIPhone()) { %> style="font-size: 3em;" <% } %>
+>
+<div id="titlebar"><h1><%= padTitle %></h1><div id="revision"><span id="revision_label"><%= rlabel %></span><br><span id="revision_date">
+Saved
+<%= ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"][new Date(savedWhen).getMonth()] %>
+<%= new Date(savedWhen).getDate() %>,
+<%= new Date(savedWhen).getFullYear() %>
+</span></div></div>
+ <div id="padcontent"
+ <% if (request.userAgent.isIPhone()) { %> style="font-size: 1.3em;" <% } %>
+ >
+<%= padHTML %></div>
+</div>
+</div>
diff --git a/etherpad/src/themes/default/templates/page.ejs b/etherpad/src/themes/default/templates/page.ejs
new file mode 100644
index 0000000..3d1632a
--- /dev/null
+++ b/etherpad/src/themes/default/templates/page.ejs
@@ -0,0 +1,135 @@
+<% /*
+Copyright 2009 Google Inc.
+Copyright 2010 Pita, Peter Martischka
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<%
+ helpers.setBodyId("padbody");
+ helpers.addBodyClass(bodyClass);
+ helpers.includeCss("pad2_ejs.css");
+ helpers.includeJs("undo-xpopup.js");
+ helpers.includeCometJs();
+ helpers.includeJQuery();;
+ helpers.includeJs("json2.js");
+ helpers.includeJs("colorutils.js");
+ helpers.includeJs("draggable.js");
+ helpers.includeJs("pad_utils.js");
+ helpers.includeJs("pad_cookie.js");
+ helpers.includeJs("pad_editor.js");
+ helpers.includeJs("pad_editbar.js");
+ helpers.includeJs("pad_docbar.js");
+ helpers.includeJs("pad_modals.js");
+ helpers.includeJs("pad2.js");
+ helpers.suppressGA();
+ helpers.setRobotsPolicy({index: false, follow: false});
+
+%>
+
+<% template.define('body', function() { var ejs_data=''; %>
+ <div id="padpage">
+ <div id="padtop">
+ <div id="topbar">
+ <% /* floated left */ %>
+ <div id="topbarleft"><!-- --></div>
+ <% /* <a href="#" id="topbarnewpad">New Pad</a> */ %>
+ <% /* floated right */ %>
+ <div id="topbarright"><!-- --></div>
+ <% /* <a href="#" id="topbarfullwidth">Toggle Width</a> */ %>
+ <% /* non-floated */ %>
+ <div id="topbarcenter">
+ <a href="/" id="topbaretherpad">EtherPad</a>
+ </div>
+ <% if (isProAccountHolder) { %>
+ <a id="backtoprosite" href="/ep/padlist/">Return to pad list</a>
+ <div id="accountnav"><%= toHTML(account.email) %>
+ <a href="/ep/account/sign-out">(sign out)</a>
+ </div>
+ <% } else if (isPro) { %>
+ <div id="accountnav">
+ <a href="<%= signinUrl %>">sign in</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="docbar">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" id="docbartable">
+ <tr>
+ <td><img src="/static/img/jun09/pad/roundcorner_left.gif"></td>
+ <%: template.use('docBarTitle'); %>
+ <td width="100%">&nbsp;</td>
+ <%: template.use('docBarItems'); %>
+ <%: plugins.callHookStr('docbarItemsAll', {}, '', '', ''); %>
+ <td><img src="/static/img/jun09/pad/roundcorner_right_orange.gif"></td>
+ </tr>
+ </table>
+ <%: template.use('docBarTitleEditor'); %>
+ <%: template.use('docBarDropdowns'); %>
+ </div><!-- /docbar -->
+ </div>
+
+ <div id="padmain">
+ <div id="padsidebar"><%: template.use('sideBar'); %></div>
+
+ <div id="padeditor">
+ <div id="editbar" class="disabledtoolbar">
+ <% /* floated left */ %>
+ <div id="editbarleft"><!-- --></div>
+ <% /* floated right */ %>
+ <div id="editbarright"><!-- --></div>
+ <% /* non-floated */ %>
+ <div id="editbarinner">
+ <table cellpadding="0" cellspacing="0" border = "0" id="editbartable">
+ <tr>
+ <%: template.use('editBarItemsLeft'); %>
+ <td width="100%">&nbsp;</td>
+ </tr>
+ </table>
+ <table cellpadding="0" cellspacing="0" border = "0" id="editbarsavetable">
+ <tr>
+ <%: template.use('editBarItemsRight'); %>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div id="editorcontainerbox"><%: template.use('contentArea'); %></div>
+ </div><!-- /padeditor -->
+
+ <div id="bottomarea">
+ <div id="viewbarcontents">
+ <div id="viewzoomtitle">Zoom:</div>
+ <select id="viewzoommenu"><option value="z85">85%</option><option value="z100">100%</option><option value="z115">115%</option><option value="z150">150%</option><option value="z200">200%</option><option value="z300">300%</option></select>
+ </div>
+
+ <div id="widthprefcheck"
+ class="<%= (prefs.isFullWidth?'widthprefchecked':'widthprefunchecked') %>"
+ ><!-- --></div>
+ <div id="sidebarcheck"
+ class="<%= (prefs.hideSidebar?'sidebarunchecked':'sidebarchecked') %>"
+ ><!-- --></div>
+ </div>
+
+ </div><!-- /padmain -->
+
+ </div><!-- /padpage -->
+
+ <%: template.use('modals'); %>
+
+<% return ejs_data; }); %>
diff --git a/etherpad/src/themes/default/templates/pro-account/recover.ejs b/etherpad/src/themes/default/templates/pro-account/recover.ejs
new file mode 100644
index 0000000..686fe3b
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro-account/recover.ejs
@@ -0,0 +1,48 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss("global-pro-account.css") %>
+
+<div class="fpcontent">
+ <div class="global-pro-account">
+
+ <h1>Recover Lost Account</h1>
+
+ <%= errorDiv() %>
+
+ <p>Enter your email address to recover your
+ account information</p>
+
+ <form id="global-sign-in"
+ action="<%= request.path %>" method="post">
+ <label for="email">Email Address:</label>
+ <input type="text" name="email" id="email" size="30"
+ <% if (oldData.email) { %>value="<%= oldData.email %>"<% } %>
+ />
+
+ <br/>
+ <button type="submit">Send account info</button>
+
+ </form>
+
+ <p><a href="/ep/pro-account/sign-in">&laquo; Back to sign
+ in</a></p>
+
+ <hr>
+
+ <p>New users: <a href="/ep/pro-signup/">create an account
+ instantly</a>.</p>
+
+ </div>
+</div>
+
+
diff --git a/etherpad/src/themes/default/templates/pro-account/sign-in.ejs b/etherpad/src/themes/default/templates/pro-account/sign-in.ejs
new file mode 100644
index 0000000..470bbc4
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro-account/sign-in.ejs
@@ -0,0 +1,57 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss("global-pro-account.css") %>
+
+<div class="fpcontent">
+ <div class="global-pro-account">
+
+ <h1>EtherPad Professional Sign In</h1>
+
+ <%= errorDiv() %>
+
+ <form id="global-sign-in"
+ action="<%= request.path %>" method="post">
+ <label for="email">Email Address:</label>
+ <input type="text" name="email" id="email" size="30"
+ <% if (oldData.email) { %>value="<%= oldData.email %>"<% } %>
+ />
+
+ <label for="password">Password:</label>
+ <input type="password" name="password" id="password" size="30" />
+
+ <label for="subDomain">Site Address:</label>
+ <input type="text" name="subDomain" id="subDomain" size="30"
+ <% if (oldData.subDomain) { %>value="<%= oldData.subDomain %>"<% } %>
+ />.<%= request.host %>/
+ <br/>
+ <button type="submit">Sign In</button>
+
+ <div class="tip">
+ <b>Tip:</b> you can also sign in by going directly to your site
+ address.
+ </div>
+
+ </form>
+
+ <p><a href="/ep/pro-account/recover">Recover lost password or
+ site address</a></p>
+
+ <hr/>
+
+ <p>New users: <a href="/ep/pro-signup/">create an account
+ instantly</a>.</p>
+
+ </div>
+</div>
+
+
diff --git a/etherpad/src/themes/default/templates/pro/account/account-welcome-email.ejs b/etherpad/src/themes/default/templates/pro/account/account-welcome-email.ejs
new file mode 100644
index 0000000..33e1ac5
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/account/account-welcome-email.ejs
@@ -0,0 +1,32 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+Dear <%= account.fullName %>,
+
+<% if (adminAccount) { %>
+<%= adminAccount.fullName %> has created an EtherPad account for you on <%=
+request.host %> (<%= siteName %>). You can sign in by clicking on the following link:
+<% } else { %>
+Thank you for signing up for EtherPad Professional Edition. You can sign in by clicking on the following link:
+<% } %>
+
+<%= signinLink %>
+
+For help signing in, or general support issues, please email support@pad.spline.inf.fu-berlin.de.
+
+--
+This email was sent to <%= toEmail %> from an EtherPad user.
+If you received it in error, you may safely ignore it.
+<%/* EtherPad's offices are located at Pier 38, The Embarcadero,
+San Francisco, CA 94107 */%>
+
diff --git a/etherpad/src/themes/default/templates/pro/account/forgot-password-email.ejs b/etherpad/src/themes/default/templates/pro/account/forgot-password-email.ejs
new file mode 100644
index 0000000..4595cee
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/account/forgot-password-email.ejs
@@ -0,0 +1,22 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+Dear <%= account.fullName %>,
+
+We received a request to reset your EtherPad password. To proceed, click the following link:
+
+<%= recoverUrl %>
+
+If you did not request a password reset, simply ignore this email.
+
+
diff --git a/etherpad/src/themes/default/templates/pro/account/forgot-password.ejs b/etherpad/src/themes/default/templates/pro/account/forgot-password.ejs
new file mode 100644
index 0000000..bbc78dd
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/account/forgot-password.ejs
@@ -0,0 +1,66 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss("pro/account.css") %>
+<% helpers.setHtmlTitle("EtherPad: Forgot Password") %>
+
+<div class="fpcontent">
+ <div class="account-container forgotpass-container">
+
+ <% var md = messageDiv(); %>
+ <% if (md) { %>
+ <%= md %>
+ <% } else { %>
+
+ <form action="<%= request.path + '?' + request.query %>"
+ method="post">
+
+ <div class="bb bb-forgotpass">
+ <div class="bb-top">
+ <div class="bb-topleft"><!-- --></div>
+ <div class="bb-topright"><!-- --></div>
+ <div class="bb-title">Recover Lost Password</div>
+ </div>
+ <div class="bb-in">
+
+ <%= errorDiv() %>
+
+ <div id="instructions">
+ Enter your email address and we will send you a link
+ to reset your password.
+ </div>
+
+ <div>
+ <label for="email" id="email-label">Email</label>
+ <input class="textin" type="text" name="email" id="email" value="<%= email
+ %>" />
+ <%= helpers.clearFloats() %>
+ </div>
+
+ <div>
+ <button type="submit" class="bluebutton
+ bluebutton120">
+ Send Email
+ </button>
+ <%= helpers.clearFloats() %>
+ </div>
+
+ </div>
+ </div>
+ </form>
+ <% } %>
+
+ <p><a href="/ep/account/sign-in">&laquo; Back to sign-in</a></p>
+
+ </div>
+</div>
+
diff --git a/etherpad/src/themes/default/templates/pro/account/my-account.ejs b/etherpad/src/themes/default/templates/pro/account/my-account.ejs
new file mode 100644
index 0000000..9634285
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/account/my-account.ejs
@@ -0,0 +1,67 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss("pro/account.css") %>
+<% helpers.setHtmlTitle("EtherPad: My Account") %>
+
+<div class="fpcontent">
+<div class="my-account">
+ <%= messageDiv() %>
+ <%= errorDiv() %>
+
+<% if (!changePass) { %>
+ <h2>My Info</h2>
+
+ <form method="post" action="/ep/account/update-info">
+ <table>
+ <tr>
+ <th>Full Name:</th>
+ <td class="ti"><%= INPUT({type: 'text', name: 'fullName',
+ value: account.fullName}) %></td>
+ </tr>
+ <tr>
+ <th>Email:</th>
+ <td class="ti"><%= INPUT({type: 'text', name: 'email', value:
+ account.email}) %></td>
+ </tr>
+ <tr>
+ <td colspan="2" style="text-align: right;">
+ <input type="submit" value="Update Info" />
+ </td>
+ </tr>
+ </table>
+ </form>
+<% } %>
+
+<h2>Password</h2>
+
+<form method="post" action="/ep/account/update-password">
+<table>
+ <tr>
+ <th>New Password:</th>
+ <td class="ti"><%= INPUT({type: 'password', name: 'password', value: ''}) %></td>
+ </tr>
+ <tr>
+ <th>Confirm Password:</th>
+ <td class="ti"><%= INPUT({type: 'password', name: 'passwordConfirm', value: ''}) %></td>
+ </tr>
+ <tr>
+ <td colspan="2" style="text-align: right;">
+ <input type="submit" id="passwordSubmit" value="Update Password" />
+ </td>
+ </tr>
+</table>
+</form>
+
+</div>
+</div>
+
diff --git a/etherpad/src/themes/default/templates/pro/account/signin.ejs b/etherpad/src/themes/default/templates/pro/account/signin.ejs
new file mode 100644
index 0000000..c67bea6
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/account/signin.ejs
@@ -0,0 +1,81 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeJQuery() %>
+<% helpers.includeJs("pro/signin-client.js") %>
+<% helpers.includeCss("pro/account.css") %>
+<% helpers.setHtmlTitle("EtherPad: Sign In") %>
+
+<div class="fpcontent">
+ <div class="account-container">
+
+ <%= signinNotice() %>
+
+ <form id="signin-form" action="<%= request.path + '?' + request.query %>" method="post">
+ <div class="bb bb-signin">
+ <div class="bb-top">
+ <div class="bb-topleft"><!-- --></div>
+ <div class="bb-topright"><!-- --></div>
+ <div class="bb-title">Sign In to <%= siteName %> EtherPad</div>
+ </div>
+ <div class="bb-in">
+ <%= errorDiv() %>
+ <div>
+ <label for="email" id="email-label">Email</label>
+ <input class="textin" type="text" name="email" id="email" value="<%= email
+ %>" />
+ <%= helpers.clearFloats() %>
+ </div>
+
+ <div>
+ <label for="password" id="password-label">Password</label>
+ <input class="passin" type="password" name="password"
+ id="password"
+ value="<%= password
+ %>" />
+ <%= helpers.clearFloats() %>
+ </div>
+
+ <div>
+ <input type="checkbox" id="rememberMe" name="rememberMe"
+ <%= (rememberMe ? 'checked="on"' : '') %> />
+ <label for="rememberMe" id="rememberMe-label">Remember me on this
+ computer</label>
+
+ <button type="submit" class="bluebutton bluebutton120" id="signInButton">
+ Sign In
+ </button>
+ <%= helpers.clearFloats() %>
+ </div>
+
+ </div>
+ </div>
+ </form>
+
+ <% if (showGuestBox) { %>
+ <form action="/ep/account/guest-sign-in"
+ id="guest-signin-choice"
+ method="get">
+ <input type="hidden" name="padId" value="<%= toHTML(localPadId) %>" />
+ Guests: <button type="submit">Request Guest Access</button>
+ </form>
+ <% } %>
+
+ <div id="bottom-text">
+ <a
+ href="/ep/account/forgot-password">Recover lost
+ password</a>
+ </div>
+
+ </div>
+</div>
+
diff --git a/etherpad/src/themes/default/templates/pro/admin/account-manager.ejs b/etherpad/src/themes/default/templates/pro/admin/account-manager.ejs
new file mode 100644
index 0000000..f1b443f
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/admin/account-manager.ejs
@@ -0,0 +1,59 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<% function fmtdate(d) {
+ if (!d) {
+ return "Never";
+ } else {
+ return d.toString().split(' ').slice(0,5).join(' ');
+ }
+} %>
+
+<h3 class="top">Accounts</h3>
+
+<div class="manage-accounts">
+
+ <%= messageDiv() %>
+ <%= warningDiv() %>
+
+ <p><a href="<%= request.path %>new">Create new account</a></p>
+
+ <% function renderAccountRow(u) {
+ var name = u.fullName;
+ return TR(TD(name),
+ TD(u.email),
+ TD(u.isAdmin ? 'Admin' : ''),
+ TD(fmtdate(u.lastLoginDate)),
+ TD(A({href: request.path + "account/"+u.id}, "Manage")))
+ }
+ %>
+
+ <table id="accountlist">
+ <tr>
+ <th width="99%">Name</th>
+ <th>Email</th>
+ <th>Role</th>
+ <th>Last Signed In</th>
+ <th>&nbsp;</th>
+ </tr>
+
+ <% accountList.forEach(function(u) { %>
+ <%= renderAccountRow(u) %>
+ <% }); %>
+
+ </table>
+
+ <p class="account-tally"><%= accountList.length %> account<%= accountList.length == 1 ? "" : "s" %>.</p>
+
+</div>
+
diff --git a/etherpad/src/themes/default/templates/pro/admin/admin-template.ejs b/etherpad/src/themes/default/templates/pro/admin/admin-template.ejs
new file mode 100644
index 0000000..a54964f
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/admin/admin-template.ejs
@@ -0,0 +1,31 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.setHtmlTitle("Etherpad Administration") %>
+<% helpers.includeCss("pro/pro-admin.css") %>
+
+<div class="fpcontent">
+ <table id="admin-layout-table">
+ <tr>
+ <td width="1%" id="admin-leftnav">
+ <%= renderAdminLeftNav() %>
+ </td>
+ <td width="99%" id="admin-right">
+ <%= getAdminContent() %>
+ </td>
+ </tr>
+ </table>
+
+</div>
+
+
+
diff --git a/etherpad/src/themes/default/templates/pro/admin/delete-account.ejs b/etherpad/src/themes/default/templates/pro/admin/delete-account.ejs
new file mode 100644
index 0000000..3de2122
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/admin/delete-account.ejs
@@ -0,0 +1,35 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><div id="delete-account-page">
+
+ <h3 class="top">Delete Account</h3>
+
+ <%= errorDiv() %>
+
+ <div class="confirm">Do you really want to delete this account?</div>
+
+ <div class="account-info"><%= account.fullName %> (<%= account.email %>)</div>
+
+ <form method="post" action="<%= request.path %>">
+ <input type="submit" name="delete" value="Delete" />
+ &nbsp;&nbsp;&nbsp;&nbsp;
+ <input type="submit" name="cancel" value="Cancel" />
+ </form>
+
+ <div class="note">When an account is deleted, some references to it may remain on the
+ site. For example, edits to pads by the deleted account will remain in the
+ pad's history. However, the deleted account will no longer be able to
+ sign in, and will not be counted toward your monthly quota.</div>
+
+</div>
+
diff --git a/etherpad/src/themes/default/templates/pro/admin/manage-account.ejs b/etherpad/src/themes/default/templates/pro/admin/manage-account.ejs
new file mode 100644
index 0000000..72529b4
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/admin/manage-account.ejs
@@ -0,0 +1,64 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %>
+<h3 class="top">Manage Account</h3>
+
+<div class="manage-accounts">
+
+ <%= errorDiv() %>
+
+ <form method="post" action="<%= request.path %>">
+
+
+ <table id="manage-account">
+ <tr>
+ <th>Email:</th>
+ <td><input type="text" name="newEmail" id="newEmail" value="<%=
+ account.email %>" /></td>
+ </tr>
+
+ <tr>
+ <th>Full Name:</th>
+ <td><input type="text" name="newFullName" id="newFullName" value="<%=
+ account.fullName %>" /></td>
+ </tr>
+
+ <tr>
+ <th><label for="newIsAdmin">Administrator?</label></th>
+ <td>
+ <input type="checkbox" name="newIsAdmin" id="newIsAdmin"
+ <%= (account.isAdmin ? "checked='true'" : '') %>
+ />
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" style="text-align: right;">
+ <a href="/ep/admin/account-manager/delete-account/<%=
+ account.id %>">Delete Account</a>
+ </td>
+ </tr>
+
+ </table>
+
+ <div style="padding: 1em;">
+ <input class="submit" type="submit" name="btn" value="Save" />
+ <input class="submit" type="submit" name="cancel" value="Cancel" />
+ </div>
+
+ </form>
+
+</div>
+
+
+
diff --git a/etherpad/src/themes/default/templates/pro/admin/new-account.ejs b/etherpad/src/themes/default/templates/pro/admin/new-account.ejs
new file mode 100644
index 0000000..2f2cccf
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/admin/new-account.ejs
@@ -0,0 +1,86 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% function formField(id, label, type) {
+ if (!type) { type = "text"; }
+ var val = (oldData[id] || "");
+
+ var d = DIV({className: "formfield"});
+
+ if (type == "checkbox") {
+ d.push(INPUT({type: type,
+ id: id,
+ name: id,
+ className: type+"input",
+ checked: (oldData[id] ? true : undefined)}),
+ LABEL({htmlFor: id, className: type+"label"}, label));
+ d.push(html('<div style="clear: both;"><!-- --></div>'));
+ } else if (type == "text") {
+ d.push(LABEL({className: type+"label", htmlFor: id}, label),
+ INPUT({className: type+"input",
+ type: type,
+ id: id,
+ name: id,
+ maxlength: 80,
+ value: val}));
+ } else if (type == "temppass") {
+ if (!val) {
+ val = stringutils.randomString(6).toUpperCase();
+ }
+ d.push(LABEL({className: type+"label", htmlFor: id}, label),
+ INPUT({className: type+"input",
+ type: "text",
+ id: id,
+ name: id,
+ maxlength: 80,
+ value: val
+ }));
+ }
+
+ return d;
+} %>
+
+<h3 class="top">Add new account</h3>
+
+<div class="manage-accounts newaccount">
+
+ <%= errorDiv() %>
+
+ <form method="post" action="<%= request.path %>">
+
+ <div class="new-account-form">
+
+ <div class="forminner">
+ <%= formField('email', 'Email:', 'text') %>
+ <%= formField('fullName', 'Full Name:', 'text') %>
+ <%= formField('tempPass', 'Temporary Password:', 'temppass') %>
+ <%= formField('makeAdmin', 'Make this account an administrator?', 'checkbox') %>
+ </div>
+
+ </div>
+ <br/><br/>
+ <div class="buttons-wrap">
+ <input class="submit" type="submit" name="btn" value="Create Account" />
+ <input class="submit" type="submit" name="cancel" value="Cancel" />
+ </div>
+
+ </form>
+
+ <p id="bottom-note">An email will be sent to this account with a link to sign in.
+ They will be prompted to change their password the first time they sign in.</p>
+ </p>
+
+</div>
+
+<script>document.getElementById('email').focus()</script>
+
+
diff --git a/etherpad/src/themes/default/templates/pro/padlist/pro-padlist.ejs b/etherpad/src/themes/default/templates/pro/padlist/pro-padlist.ejs
new file mode 100644
index 0000000..b762679
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/padlist/pro-padlist.ejs
@@ -0,0 +1,49 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.includeCss("lib/jquery.contextmenu.css") %>
+<% helpers.includeCss("pro/padlist.css") %>
+
+<% helpers.includeJQuery() %>
+<% helpers.includeJs("lib/jquery.contextmenu.js") %>
+<% helpers.includeJs("pro/pro-padlist-client.js") %>
+
+<% helpers.setHtmlTitle("Pad List - " + orgName + " - EtherPad") %>
+
+<div class="fpcontent">
+
+ <%= renderPadNav() %>
+ <%= renderNotice() %>
+ <%= renderShowingDesc(padList.length) %>
+
+ <% if (padList.length > 0) { %>
+ <%= renderPadList() %>
+ <p style="font-size: .8em;"><i><%= padList.length %> pad<% if (padList.length > 1) { %>s<% } %></i> <% if (isAdmin) { %>(<a href="/ep/padlist/all-pads.zip">Download all pads as a ZIP archive</a>.) <% } %>
+</p>
+
+ <% } else { %>
+ <p>No pads in this list.</p>
+ <% } %>
+
+</div>
+
+<form action="/ep/padlist/delete" method="post" id="delete-pad" style="display: none;">
+ <input type="hidden" name="returnPath" value="<%= request.url %>" />
+ <input id="padIdToDelete" name="padIdToDelete" type="hidden" value="-" />
+</form>
+
+<form action="/ep/padlist/toggle-archive" method="post" id="toggle-archive-pad" style="display: none;">
+ <input type="hidden" name="returnPath" value="<%= request.url %>" />
+ <input id="padIdToToggleArchive" name="padIdToToggleArchive" type="hidden" value="-" />
+</form>
+
+
diff --git a/etherpad/src/themes/default/templates/pro/pro_home.ejs b/etherpad/src/themes/default/templates/pro/pro_home.ejs
new file mode 100644
index 0000000..bcf7443
--- /dev/null
+++ b/etherpad/src/themes/default/templates/pro/pro_home.ejs
@@ -0,0 +1,103 @@
+<% /* Copyright 2009 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS-IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */ %><% helpers.setHtmlTitle(orgName + " - EtherPad"); %>
+<% helpers.includeJQuery() %>
+<% helpers.includeJs("etherpad.js") %>
+<% helpers.includeCss("pro/pro-home.css"); %>
+<% helpers.includeCss("pro/padlist.css"); %>
+
+<div class="fpcontent">
+
+ <div id="welcome-msg">
+ Welcome <%= account.fullName %>
+ <% if (account.isAdmin) { %>(Administrator)<% } %>
+ <br/>
+ <br/>
+ </div>
+
+
+ <div id="homeright">
+ <a href="/ep/pad/newpad">
+ <img src="/static/img/davy/btn/createpad-small.gif" alt="Create new pad" />
+ </a>
+
+ <% if (livePads.length > 0) { %>
+ <div id="live-pads">
+ <h3>Live Pads (currently being edited)</h3>
+ <div id="listwrap">
+ <%= renderLivePads() %>
+ </div>
+ </div>
+ <% } %>
+
+ <% if (recentPads.length > 0) { %>
+ <div id="recent-pads">
+ <h3>Your Recent Pads:</h3>
+ <div id="listwrap">
+ <%= renderRecentPads() %>
+ </div>
+ <a id="viewall" href="/ep/padlist/">View all pads...</a>
+ <div style="clear:both"><!-- --></div>
+ </div>
+ <% } %>
+
+ </div>
+
+ <div id="homeleft">
+ <div id="homeleft-title">
+ Latest News
+ </div>
+
+ <div class="news-time-sep">
+ <div class="date">
+ June 17th, 2009
+ </div>
+ <div class="line"><!-- --></div>
+ </div>
+
+ <div class="news-item">
+ <p>Welcome to your EtherPad Beta Account! Please report bugs by
+ sending email to <%= helpers.oemail("bugs") %>.
+
+ <p>We hope you enjoy EtherPad!</p>
+
+ <p>Sincerely,</p>
+
+ <p>Spline</p>
+ </p>
+ </div>
+
+ </div>
+
+
+ </div><!-- /homeleft -->
+
+ <%= helpers.clearFloats() %>
+
+ <% if (isPNE) { %>
+ <div id="version-info"
+ style="margin-top: 2em; font-size: 76%; color: #444; text-align: right;">
+ <br/>
+ EtherPad Private Network Edition (PNE)
+ Version <%= pneVersion %><br/>
+
+ <% if (isEvaluation && evalExpDate) { %>
+ <br/>
+ <span style="color: #c22;">EVALUATION EDITION: Expires <%= evalExpDate.toString()
+ %>.<br/>
+ <% } %>
+ </div>
+ <% } %>
+
+</div>
+