diff options
Diffstat (limited to 'etherpad/src/themes/default/templates')
34 files changed, 2178 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..291e0fd --- /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 <support@etherpad.com> 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..c6467b8 --- /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@etherpad.com 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..73b0e99 --- /dev/null +++ b/etherpad/src/themes/default/templates/framed/framedheader-pro.ejs @@ -0,0 +1,79 @@ +<% /* +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'], + ['/ep/pro-help/', 'Help', 'help'] + ]; + 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..aa5d934 --- /dev/null +++ b/etherpad/src/themes/default/templates/main/home.ejs @@ -0,0 +1,36 @@ +<% /* +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("EtherPad: Open-Sourced!"); %> + +<% helpers.includeCss("home-opensource.css"); %> + +<div id="home"> + <div id="title"> + EtherPad: Open-Sourced! + </div> + + <div> + <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> + + 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..e984878 --- /dev/null +++ b/etherpad/src/themes/default/templates/main/pro_signup_body.ejs @@ -0,0 +1,70 @@ +<% /* 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"> + Instructions for choosing a password and signing in will + be emailed here. + </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..5fec49a --- /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("EtherPad: 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 EtherPad 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, '"'); + + 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, """), '"'); //" + } + 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 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 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 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> </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> </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> </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> </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..75c38fe --- /dev/null +++ b/etherpad/src/themes/default/templates/pad/padview_body.ejs @@ -0,0 +1,143 @@ +<% /* 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> +<img src="/static/img/may09/doc.gif" ><a class="tlink" href="/ep/pad/export/<%= padId %>/<%= revisionId %>?format=html" thref="/ep/pad/export/<%= padId %>/rev.%revision%?format=doc" >Microsoft Word</a><br> +<img src="/static/img/may09/pdf.gif" ><a class="tlink" href="/ep/pad/export/<%= padId %>/<%= revisionId %>?format=html" thref="/ep/pad/export/<%= padId %>/rev.%revision%?format=pdf" >PDF</a> + + +</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%"> </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%"> </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">« 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-help/main.ejs b/etherpad/src/themes/default/templates/pro-help/main.ejs new file mode 100644 index 0000000..428d7f7 --- /dev/null +++ b/etherpad/src/themes/default/templates/pro-help/main.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. */ %> +<h1>EtherPad Professional Edition Help</h1> + +<p>These pages are evolving. If you have any questions, or find +parts of EtherPad confusing, please write in to our Helpdesk by +emailing <%= helpers.oemail("support") %>.</p> + +<p>Please report bugs to <%= helpers.oemail("bugs") %>.</p> + +<p>Also note that you can also get help from other users in the <a +href="http://etherpad.com/ep/about/forums">UserVoice Community +Forums</a>.</p> + +<h2>Help Topics:</h2> + +<ul> +<% helpTopics.forEach(function(t) { %> + <li><%= A({href: "/ep/pro-help/"+t[0]}, t[1]) %></li> +<% }); %> +</ul> + + + diff --git a/etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs b/etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs new file mode 100644 index 0000000..9cc8205 --- /dev/null +++ b/etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs @@ -0,0 +1,24 @@ +<% /* 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("etherpad.js") %> +<% helpers.includeCss("pro-help.css") %> + +<div class="fpcontent"> + <div class="pro-help"> + <%= renderContent() %> + </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..25af6f8 --- /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@etherpad.com. + +-- +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">« 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> </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..e1a7736 --- /dev/null +++ b/etherpad/src/themes/default/templates/pro/admin/admin-template.ejs @@ -0,0 +1,33 @@ +<% /* 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> + <% if (validLicense) { %> + <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" /> + + <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..8d92139 --- /dev/null +++ b/etherpad/src/themes/default/templates/pro/pro_home.ejs @@ -0,0 +1,110 @@ +<% /* 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") %>. You can also give us + feedback and feature suggestions via <a target="_blank" + href="http://uservoice.etherpad.com/">UserVoice</a>.</p> + + <p>If you have any questions, just email <%= + helpers.oemail("support") %> and + we will respond to your inquiries.</p> + + <p>We hope you enjoy EtherPad!</p> + + <p>Sincerely,</p> + + <p>Aaron Iba<br/> + CEO, AppJet Inc. + </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> + |