diff options
author | rugk <rugk@posteo.de> | 2016-09-30 19:20:40 +0200 |
---|---|---|
committer | rugk <rugk@posteo.de> | 2016-09-30 19:20:40 +0200 |
commit | f29e813ca000e3edfa0231dfc042463d635b075d (patch) | |
tree | ed31da12002bccea59481012cc22d5e8dc120da6 | |
parent | b5632b3ac5b8db82d439a6bf29fa93e41712a607 (diff) | |
parent | f289611ba93a45cd7141f849c7ae896048f9861b (diff) | |
download | etherpad-lite-f29e813ca000e3edfa0231dfc042463d635b075d.zip |
Merge https://github.com/ether/etherpad-lite into patch-3
Conflicts:
src/templates/index.html
-rw-r--r-- | src/locales/ar.json | 2 | ||||
-rw-r--r-- | src/locales/de.json | 5 | ||||
-rw-r--r-- | src/locales/dty.json | 69 | ||||
-rw-r--r-- | src/locales/eo.json | 5 | ||||
-rw-r--r-- | src/locales/hu.json | 10 | ||||
-rw-r--r-- | src/locales/lb.json | 10 | ||||
-rw-r--r-- | src/locales/qqq.json | 2 | ||||
-rw-r--r-- | src/locales/sl.json | 9 | ||||
-rw-r--r-- | src/node/handler/ExportHandler.js | 4 | ||||
-rw-r--r-- | src/node/hooks/express/padreadonly.js | 4 | ||||
-rw-r--r-- | src/node/hooks/express/specialpages.js | 7 | ||||
-rw-r--r-- | src/node/utils/ExportHtml.js | 111 | ||||
-rw-r--r-- | src/node/utils/ExportTxt.js | 12 | ||||
-rw-r--r-- | src/static/js/ace2_inner.js | 11 | ||||
-rw-r--r-- | src/templates/admin/index.html | 1 | ||||
-rw-r--r-- | src/templates/admin/plugins-info.html | 1 | ||||
-rw-r--r-- | src/templates/admin/plugins.html | 1 | ||||
-rw-r--r-- | src/templates/admin/settings.html | 1 | ||||
-rw-r--r-- | src/templates/export_html.html | 144 | ||||
-rw-r--r-- | src/templates/index.html | 34 | ||||
-rw-r--r-- | src/templates/javascript.html | 73 | ||||
-rw-r--r-- | src/templates/pad.html | 5 | ||||
-rw-r--r-- | src/templates/timeslider.html | 4 |
23 files changed, 380 insertions, 145 deletions
diff --git a/src/locales/ar.json b/src/locales/ar.json index 33c6beb3..4d9eb111 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -80,7 +80,7 @@ "pad.modals.corruptPad.cause": "قد يكون هذا بسبب تكوين ملقم خاطئ أو بسبب سلوك آخر غير متوقع. يرجى الاتصال بمسؤول الخدمة.", "pad.modals.deleted": "محذوف.", "pad.modals.deleted.explanation": "تمت إزالة هذا الباد", - "pad.modals.disconnected": "لم تعد متّصل.", + "pad.modals.disconnected": "لم تعد متصلا.", "pad.modals.disconnected.explanation": "تم فقدان الإتصال بالخادم", "pad.modals.disconnected.cause": "قد يكون الخادم غير متوفر. يرجى إعلام مسؤول الخدمة إذا كان هذا لا يزال يحدث.", "pad.share": "شارك هذه الباد", diff --git a/src/locales/de.json b/src/locales/de.json index 29387fd5..f32b8cf6 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -6,11 +6,12 @@ "Nipsky", "Wikinaut", "Thargon", - "Predatorix" + "Predatorix", + "Sebastian Wallroth" ] }, "index.newPad": "Neues Pad", - "index.createOpenPad": "oder Pad mit folgendem Namen öffnen:", + "index.createOpenPad": "oder ein Pad mit folgendem Namen erstellen/öffnen:", "pad.toolbar.bold.title": "Fett (Strg-B)", "pad.toolbar.italic.title": "Kursiv (Strg-I)", "pad.toolbar.underline.title": "Unterstrichen (Strg-U)", diff --git a/src/locales/dty.json b/src/locales/dty.json index fde36512..c0d439e6 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "रमेश सिंह बोहरा", - "राम प्रसाद जोशी" + "राम प्रसाद जोशी", + "Nirajan pant" ] }, "index.newPad": "नयाँ प्याड", @@ -18,6 +19,7 @@ "pad.toolbar.undo.title": "खारेजी (Ctrl-Z)", "pad.toolbar.redo.title": "दोसर्या:लागु (Ctrl-Y)", "pad.toolbar.clearAuthorship.title": "लेखकीय रङ्ग हटाउन्या (Ctrl+Shift+C)", + "pad.toolbar.import_export.title": "विविध फाइल फर्म्याटअन बठेइ/मी आयात/निर्यात", "pad.toolbar.timeslider.title": "टाइमस्लाइडर", "pad.toolbar.savedRevision.title": "पुनरावलोकन संग्रहा गद्य्य", "pad.toolbar.settings.title": "सेटिङ्गहरू", @@ -26,6 +28,7 @@ "pad.colorpicker.save": "सङ्ग्रह गद्या", "pad.colorpicker.cancel": "खारेजी", "pad.loading": "लोड हुन्नाछ....", + "pad.noCookie": "कुकी पाउन नाइ सकियो। तमरा ब्राउजरमी कुकी राख्दाइ अनुमति दिय!", "pad.passwordRequired": "यो प्यड खोल्लाकी पासवर्ड चाहिन्छ", "pad.permissionDenied": "तमलाईँ यै प्याड खोल्लाकी अनुमति नाइथिन", "pad.wrongPassword": "तमरो पासवर्ड गलत थ्यो", @@ -49,16 +52,78 @@ "pad.importExport.exportword": "माइक्रोसफ्ट वर्ड", "pad.importExport.exportpdf": "पिडिएफ", "pad.importExport.exportopen": "ओडिएफ(खुल्ला कागजात ढाँचा)", + "pad.importExport.abiword.innerHTML": "तम सादा पाठ या HTML ढाँचा बठेइ मात्तरी आयात अरीसकन्छऽ। विस्तारित आयात विशेषता खिलाई कृपया <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\">abiword स्थापना अरऽ</a>।", "pad.modals.connected": "जोडीयाको", "pad.modals.reconnecting": "तमरो प्याडमि आजि: जडान हुन्नाछ", + "pad.modals.forcereconnect": "बलात् पुन:जडान", + "pad.modals.userdup": "अर्खा विण्डोमी खुलिरैछ", + "pad.modals.userdup.explanation": "यो प्याड येइ कम्प्युटरमी एक़ है बर्ता ब्राउजर सञ्झ्यालमी खोल्याऽ धेकीँछ।", + "pad.modals.userdup.advice": "बरु यो विण्डो प्रयोग अद्दाइ दोसर्याँ जोणिय।", + "pad.modals.unauth": "अनुमति नदियीयाऽ", + "pad.modals.unauth.explanation": "येइ पन्ना हेरनज्याँ तमरा अधिकार बदेलिया। दोसर्याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.looping.explanation": "सिक्रोनाइजेसन सर्भर सित सञ्चार समस्या धेकिन्नाछ़।", + "pad.modals.looping.cause": "शायद तम यक असंगत फायरवाल या प्रोक्सी का माध्यम बठेइ जोणीरैछऽ।", "pad.modals.initsocketfail": "सर्भरमा पहुँच पुर्याउन नाइसकियो ।", + "pad.modals.initsocketfail.explanation": "सिङ्क्रोनाइजेसन सर्भर सित जोणीन नाइ सकियो?", + "pad.modals.initsocketfail.cause": "यो शायद तमरा ब्राउजर या इन्टरनेट जडान सित सम्बन्धित समस्याऽ कारणले होइ सकन्छ़।", + "pad.modals.slowcommit.explanation": "सर्भर प्रत्युत्तर दिन्नारेन।", + "pad.modals.slowcommit.cause": "यो नेटवर्क कनेक्टिविटी सङ्ङ सम्बन्धित समस्याऽ कारण ले होइसकन्छ।", + "pad.modals.badChangeset.explanation": "तमले अर्याऽ यक सम्पादन समक्रमण सर्भर हताँ अवैध वर्गीकृत अरियाऽ थ्यो।", + "pad.modals.badChangeset.cause": "यो यक गलत सर्भर विन्यास या केइ और अप्रत्याशित चालचलनाऽ कारण़ ले होइसकन्छ। यदि तमलाई यो गल्ती हो भण्ण्या लागन्छ भँण्या, कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ। सम्पादन चालु राख्दाइ दोसर्याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.corruptPad.explanation": "तमले उपयोग अद्द़ खोज्याऽ प्याड बिगण्योऽ छ।", + "pad.modals.corruptPad.cause": "यो गलत सर्भर विन्यास या केइ और नसोच्याऽ चालचलनले होइसकन्छ। कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ।", "pad.modals.deleted": "मेटियाको", "pad.modals.deleted.explanation": "यो प्याड हटाइसक्याको छ ।", "pad.modals.disconnected": "तमरो जडान अवरुद्ध भयो ।", "pad.modals.disconnected.explanation": "तमरो सर्भरसितको जडान अवरुद्ध भयो", + "pad.modals.disconnected.cause": "सर्भर अनुपलब्ध होइसकन्छ। यदि यो हुनोइ रयाबर कृपया सेवा व्यवस्थापकलाई सूचित अरऽ।", "pad.share": "यस प्यडलाई बाड्न्या", "pad.share.readonly": "पड्या मात्तरै", "pad.share.link": "लिङ्क", "pad.share.emebdcode": "URL थप्प्या", - "pad.chat": "कुरणिकानी" + "pad.chat": "कुरणिकानी", + "pad.chat.title": "येइ प्याड खिलाइ गफ खोलऽ", + "pad.chat.loadmessages": "जेदा सन्देश लोड अरऽ", + "timeslider.pageTitle": "{{appTitle}} समय स्लाइडर", + "timeslider.toolbar.returnbutton": "प्याडमी फर्कऽ", + "timeslider.toolbar.authors": "लेखकअन:", + "timeslider.toolbar.authorsList": "लेखकअन आथीनन", + "timeslider.toolbar.exportlink.title": "निर्यात", + "timeslider.exportCurrent": "हालआ शंसोधनलाई इस्याँ निर्यात अरऽ:", + "timeslider.version": "संस्करण {{version}}", + "timeslider.saved": "भँणार अरीयाऽ {{month}} {{day}}, {{year}}", + "timeslider.playPause": "प्याडआ सामाग्रीइनलाई प्लेब्याक/पउज अरऽ", + "timeslider.backRevision": "येइ प्याडमी यक शंसोधन पछा जाऽ", + "timeslider.forwardRevision": "येइ शंसोधनमी यक शंसोधन अघा जाऽ", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "जनवरी", + "timeslider.month.february": "फेब्रुअरी", + "timeslider.month.march": "मार्च", + "timeslider.month.april": "अप्रिल", + "timeslider.month.may": "मे", + "timeslider.month.june": "जुन", + "timeslider.month.july": "जुलाई", + "timeslider.month.august": "अगस्ट", + "timeslider.month.september": "सेप्टेम्बर", + "timeslider.month.october": "अक्टोबर", + "timeslider.month.november": "नोभेम्बर", + "timeslider.month.december": "डिसेम्बर", + "timeslider.unnamedauthors": "{{num}} बिननाउँइको {[plural(num) one: author, other: authors ]}", + "pad.savedrevs.marked": "आब येइ संशोधनलाई सङ्ग्रहित संशोधनआ रूपमी चिनो लायियो", + "pad.savedrevs.timeslider": "समयस्लाइडर भेटिबर तम भँणार अरीयाऽ शंसोधनअनलाई हेरि सकन्छऽ", + "pad.userlist.entername": "तमरो नाउँ हाल", + "pad.userlist.unnamed": "बिननाउँइको", + "pad.userlist.guest": "पाउनो", + "pad.userlist.deny": "अस्वीकार", + "pad.userlist.approve": "अनुमोदन", + "pad.editbar.clearcolors": "सङताइ कागताजमी है लेखक रङ्ङअन साप अद्द्या?", + "pad.impexp.importbutton": "ऐलै आयार अरऽ", + "pad.impexp.importing": "आयात अद्दाछ़...", + "pad.impexp.confirmimport": "फाइल आयात़ ले प्याडओ अइलओ पाठ बदेलिन्या हो। तम ऐतिऱ बड्ड चाहन्छ भणिबर पक्का छऽ?", + "pad.impexp.convertFailed": "एइ फाइललाई आयात अद्द नाइसक्यो। कृपया जुदोइ कागजात फर्याट प्रयोग अरऽ या नकल पेस्ट अरऽ", + "pad.impexp.padHasData": "हम एइ फाइलाई आयात अद्दाइ असमर्थ छौँ क्याइकि एइ प्याडमी पैली अरीयाऽ फेलबदेल छन्, कृपया नयाँ प्याडमी आयात अरऽ", + "pad.impexp.uploadFailed": "अपलोड असफल, कृपया दोसर्याँ प्रयास अर:", + "pad.impexp.importfailed": "आयात असफल", + "pad.impexp.copypaste": "कृपया नकल सार अर:", + "pad.impexp.exportdisabled": "{{type}} फर्म्याटमी निर्यात अक्षम अरीरैछ। विवरण खिलाइ कृपया तमरा संयन्त्र प्रशासकलाई सम्पर्क अर:।" } diff --git a/src/locales/eo.json b/src/locales/eo.json index c4526728..786d3bbe 100644 --- a/src/locales/eo.json +++ b/src/locales/eo.json @@ -3,7 +3,8 @@ "authors": [ "Eliovir", "Mschmitt", - "Objectivesea" + "Objectivesea", + "Robin van der Vliet" ] }, "index.newPad": "Nova Teksto", @@ -120,7 +121,7 @@ "pad.userlist.approve": "Aprobi", "pad.editbar.clearcolors": "Forigi kolorojn de aŭtoreco en la tuta dokumento?", "pad.impexp.importbutton": "Enporti Nun", - "pad.impexp.importing": "Enportanta...", + "pad.impexp.importing": "Enportante...", "pad.impexp.confirmimport": "Enporti dosieron superskribos la nunan tekston en la redaktilo. Ĉu vi certe volas daŭrigi?", "pad.impexp.convertFailed": "Ni ne kapablis enporti tiun dosieron. Bonvolu uzi alian dokumentformaton aŭ permane kopii kaj alglui.", "pad.impexp.padHasData": "Ni ne kapablis enporti tiun dosieron ĉar la teksto jam estas ŝanĝita. Bonvolu enporti en novan tekston.", diff --git a/src/locales/hu.json b/src/locales/hu.json index c4d06c27..f34c76ca 100644 --- a/src/locales/hu.json +++ b/src/locales/hu.json @@ -64,7 +64,7 @@ "pad.modals.userdup.explanation": "Úgy tűnik, ez a notesz több különböző böngészőablakban is meg van nyitva a számítógépeden.", "pad.modals.userdup.advice": "Kapcsolódj újra, ha ezt az ablakot akarod használni.", "pad.modals.unauth": "Nincs rá jogosultságod", - "pad.modals.unauth.explanation": "A jogosultságaid megváltoztak, miközben ezt az oldalt nézted. Próbálj meg újrakapcsolódni.", + "pad.modals.unauth.explanation": "A jogosultságaid megváltoztak, miközben ezt az oldalt nézted. Próbálj meg újrakapcsolódni!", "pad.modals.looping.explanation": "Nem sikerült a kommunikáció a szinkronizációs szerverrel.", "pad.modals.looping.cause": "Talán egy túl szigorú tűzfalon vagy proxyn keresztül kapcsolódtál az internetre.", "pad.modals.initsocketfail": "A szerver nem érhető el.", @@ -96,6 +96,9 @@ "timeslider.exportCurrent": "Jelenlegi változat exportálása így:", "timeslider.version": "{{version}} verzió", "timeslider.saved": "{{year}}. {{month}} {{day}}-n elmentve", + "timeslider.playPause": "Notesz tartalom visszajátszása / leállítása", + "timeslider.backRevision": "Egy revízióval vissza a noteszben", + "timeslider.forwardRevision": "Egy revízióval előre a noteszben", "timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "január", "timeslider.month.february": "február", @@ -109,8 +112,9 @@ "timeslider.month.october": "október", "timeslider.month.november": "november", "timeslider.month.december": "december", - "timeslider.unnamedauthors": "{{num}} névtelen {[plural(num), one: szerző, other: szerző]}", + "timeslider.unnamedauthors": "{{num}} névtelen {[plural(num), one: szerző, other: szerzők]}", "pad.savedrevs.marked": "Ez a revízió mostantól mentettként jelölve", + "pad.savedrevs.timeslider": "A mentett revíziókat az időcsúszkán tudod megnézni", "pad.userlist.entername": "Add meg a nevedet", "pad.userlist.unnamed": "névtelen", "pad.userlist.guest": "Vendég", @@ -121,7 +125,7 @@ "pad.impexp.importing": "Importálás…", "pad.impexp.confirmimport": "Egy fájl importálása felülírja a jelenlegi szöveget a noteszben. Biztos hogy folytatod?", "pad.impexp.convertFailed": "Nem tudtuk importálni ezt a fájlt. Kérjük, használj másik dokumentum formátumot, vagy kézzel másold és illeszd be a tartalmat", - "pad.impexp.padHasData": "Nem tudjuk importálni ezt a fájlt, mert ez a Pad már megváltozott, kérjük, importálj egy új padra", + "pad.impexp.padHasData": "Nem tudjuk importálni ezt a fájlt, mert ez a notesz már megváltozott, kérjük, importálj egy új noteszba.", "pad.impexp.uploadFailed": "A feltöltés sikertelen, próbáld meg újra", "pad.impexp.importfailed": "Az importálás nem sikerült", "pad.impexp.copypaste": "Kérjük másold be", diff --git a/src/locales/lb.json b/src/locales/lb.json index 99bfe0b5..535d778f 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -8,10 +8,14 @@ }, "index.newPad": "Neie Pad", "index.createOpenPad": "oder maacht ee Pad mat dësem Numm op:", + "pad.toolbar.bold.title": "Fett (Strg-B)", + "pad.toolbar.italic.title": "Schréi (Ctrl+I)", "pad.toolbar.underline.title": "Ënnerstrach (Ctrl+U)", "pad.toolbar.strikethrough.title": "Duerchgestrach (Ctrl+5)", "pad.toolbar.ol.title": "Numeréiert Lëscht (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Net-numeréiert Lëscht (Ctrl+Shift+L)", + "pad.toolbar.indent.title": "Aréckelen (TAB)", + "pad.toolbar.unindent.title": "Erausréckelen (Shift+TAB)", "pad.toolbar.undo.title": "Réckgängeg (Ctrl-Z)", "pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)", "pad.toolbar.savedRevision.title": "Versioun späicheren", @@ -29,14 +33,19 @@ "pad.settings.language": "Sprooch:", "pad.importExport.import_export": "Import/Export", "pad.importExport.importSuccessful": "Erfollegräich", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Kloertext", "pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.modals.connected": "Verbonnen.", + "pad.modals.userdup": "An enger anerer Fënster opgemaach", "pad.modals.unauth": "Net autoriséiert", "pad.modals.slowcommit.explanation": "De Server äntwert net.", "pad.modals.deleted": "Geläscht.", + "pad.modals.disconnected": "Äre Verbindung ass ofgebrach.", + "pad.modals.disconnected.explanation": "D'Verbindung mam Server ass verluergaang.", "pad.share.readonly": "Nëmme liesen", "pad.share.link": "Link", "pad.chat.loadmessages": "Méi Message lueden", @@ -58,6 +67,7 @@ "timeslider.month.october": "Oktober", "timeslider.month.november": "November", "timeslider.month.december": "Dezember", + "pad.savedrevs.marked": "Dës Versioun ass elo als gespäichert Versioun markéiert", "pad.userlist.entername": "Gitt Ären Numm an", "pad.userlist.guest": "Gaascht", "pad.userlist.approve": "Zoustëmmen", diff --git a/src/locales/qqq.json b/src/locales/qqq.json index 39389924..0beec0cc 100644 --- a/src/locales/qqq.json +++ b/src/locales/qqq.json @@ -107,7 +107,7 @@ "pad.savedrevs.marked": "more like bookmarked, or tagged/starred", "pad.userlist.entername": "Used as placeholder for the \"Name\" input box in the upper right corner of the screen.", "pad.userlist.unnamed": "Displayed, if a user has not set a nick yet", - "pad.userlist.guest": "Preceded by the link text which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.", + "pad.userlist.guest": "Preceded by the link text which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.\n{{Identical|Guest}}", "pad.userlist.deny": "Used as link text.\n\nFollowed by the link which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.", "pad.userlist.approve": "Used as link text.\n\nPreceded by the link which is labeled {{msg-etherpadlite|Pad.userlist.deny}}.\n\nFollowed by the message {{msg-etherpadlite|Pad.userlist.guest}}.\n{{Identical|Approve}}", "pad.editbar.clearcolors": "Used as confirmation message (JavaScript <code>confirm()</code> function).\n\nThis message means \"Are you sure you want to clear authorship colors on entire document?\".", diff --git a/src/locales/sl.json b/src/locales/sl.json index a51cb53d..5d2dd85e 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -6,7 +6,7 @@ "Skalcaa" ] }, - "index.newPad": "Nova Ploščica", + "index.newPad": "Nov dokument", "index.createOpenPad": "ali pa odpri dokument z imenom:", "pad.toolbar.bold.title": "Krepko (Ctrl-B)", "pad.toolbar.italic.title": "Ležeče (Ctrl-I)", @@ -72,7 +72,7 @@ "pad.modals.slowcommit.cause": "Najverjetneje je prišlo do napake med vzpostavitvijo povezave.", "pad.modals.badChangeset.explanation": "Urejanje, ki ste ga naredili, je sinhronizacijski strežnik označil kot nelegalno.", "pad.modals.badChangeset.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve, če menite, da gre za napako. Poskusite se ponovno povezati, da nadaljujete z urejanjem.", - "pad.modals.corruptPad.explanation": "Blok, do katerega želite dostopati, je poškodovan.", + "pad.modals.corruptPad.explanation": "Dokument, do katerega želite dostopati, je poškodovan.", "pad.modals.corruptPad.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve.", "pad.modals.deleted": "Izbrisano.", "pad.modals.deleted.explanation": "Dokument je odstranjen.", @@ -94,6 +94,9 @@ "timeslider.exportCurrent": "Izvozi trenutno različico kot:", "timeslider.version": "Različica {{version}}", "timeslider.saved": "Shranjeno {{day}}.{{month}}.{{year}}", + "timeslider.playPause": "Predvajaj/začasno ustavi vsebino dokumenta", + "timeslider.backRevision": "Pojdi eno redakcijo nazaj v tem dokumentu", + "timeslider.forwardRevision": "Pojdi redakcijo naprej v tem dokumentu", "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Januar", "timeslider.month.february": "Februar", @@ -120,7 +123,7 @@ "pad.impexp.importing": "Poteka uvažanje ...", "pad.impexp.confirmimport": "Uvoz datoteke prepiše obstoječe besedilo dokumenta. Ali ste prepričani, da želite nadaljevati?", "pad.impexp.convertFailed": "Datoteke ni mogoče uvoziti. Uporabiti je treba enega izmed podprtih zapisov dokumentov ali pa vsebino prilepiti ročno.", - "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker ta Ploščica že vsebuje spremembe. Prosimo, uvozite datoteko v novo ploščico", + "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker dokument že vsebuje spremembe. Prosimo, uvozite datoteko v nov dokument", "pad.impexp.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", "pad.impexp.importfailed": "Uvoz je spodletel.", "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.", diff --git a/src/node/handler/ExportHandler.js b/src/node/handler/ExportHandler.js index 8f91ced2..fe7ab3db 100644 --- a/src/node/handler/ExportHandler.js +++ b/src/node/handler/ExportHandler.js @@ -76,7 +76,7 @@ exports.doExport = function(req, res, padId, type) } else if(type == "txt") { - exporttxt.getPadTXTDocument(padId, req.params.rev, false, function(err, txt) + exporttxt.getPadTXTDocument(padId, req.params.rev, function(err, txt) { if(ERR(err)) return; res.send(txt); @@ -92,7 +92,7 @@ exports.doExport = function(req, res, padId, type) //render the html document function(callback) { - exporthtml.getPadHTMLDocument(padId, req.params.rev, false, function(err, _html) + exporthtml.getPadHTMLDocument(padId, req.params.rev, function(err, _html) { if(ERR(err, callback)) return; html = _html; diff --git a/src/node/hooks/express/padreadonly.js b/src/node/hooks/express/padreadonly.js index 66be3339..bff8adf7 100644 --- a/src/node/hooks/express/padreadonly.js +++ b/src/node/hooks/express/padreadonly.js @@ -7,7 +7,7 @@ var exporthtml = require("../../utils/ExportHtml"); exports.expressCreateServer = function (hook_name, args, cb) { //serve read only pad args.app.get('/ro/:id', function(req, res) - { + { var html; var padId; @@ -40,7 +40,7 @@ exports.expressCreateServer = function (hook_name, args, cb) { hasPadAccess(req, res, function() { //render the html document - exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html) + exporthtml.getPadHTMLDocument(padId, null, function(err, _html) { if(ERR(err, callback)) return; html = _html; diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js index e8d7795a..2840f82c 100644 --- a/src/node/hooks/express/specialpages.js +++ b/src/node/hooks/express/specialpages.js @@ -16,6 +16,13 @@ exports.expressCreateServer = function (hook_name, args, cb) { res.send(eejs.require("ep_etherpad-lite/templates/index.html")); }); + //serve javascript.html + args.app.get('/javascript', function(req, res) + { + res.send(eejs.require("ep_etherpad-lite/templates/javascript.html")); + }); + + //serve robots.txt args.app.get('/robots.txt', function(req, res) { diff --git a/src/node/utils/ExportHtml.js b/src/node/utils/ExportHtml.js index 836165b1..bd177ac4 100644 --- a/src/node/utils/ExportHtml.js +++ b/src/node/utils/ExportHtml.js @@ -22,6 +22,7 @@ var ERR = require("async-stacktrace"); var _ = require('underscore'); var Security = require('ep_etherpad-lite/static/js/security'); var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); +var eejs = require('ep_etherpad-lite/node/eejs'); var _analyzeLine = require('./ExportHelper')._analyzeLine; var _encodeWhitespace = require('./ExportHelper')._encodeWhitespace; @@ -478,7 +479,7 @@ function getHTMLFromAtext(pad, atext, authorColors) return pieces.join(''); } -exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) +exports.getPadHTMLDocument = function (padId, revNum, callback) { padManager.getPad(padId, function (err, pad) { @@ -490,112 +491,16 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) stylesForExport.forEach(function(css){ stylesForExportCSS += css; }); - // Core inclusion of head etc. - var head = - (noDocType ? '' : '<!doctype html>\n') + - '<html lang="en">\n' + (noDocType ? '' : '<head>\n' + - '<title>' + Security.escapeHTML(padId) + '</title>\n' + - '<meta name="generator" content="Etherpad">\n' + - '<meta name="author" content="Etherpad">\n' + - '<meta name="changedby" content="Etherpad">\n' + - '<meta charset="utf-8">\n' + - '<style> * { font-family: arial, sans-serif;\n' + - 'font-size: 13px;\n' + - 'line-height: 17px; }' + - 'ul.indent { list-style-type: none; }' + - - 'ol { list-style-type: none; padding-left:0;}' + - 'body > ol { counter-reset: first second third fourth fifth sixth seventh eigth ninth tenth eleventh twelth thirteenth fourteenth fifteenth sixteenth; }' + - 'ol > li:before {' + - 'content: counter(first) ". " ;'+ - 'counter-increment: first;}' + - - 'ol > ol > li:before {' + - 'content: counter(first) "." counter(second) ". " ;'+ - 'counter-increment: second;}' + - - 'ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) ". ";'+ - 'counter-increment: third;}' + - - 'ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) ". ";'+ - 'counter-increment: fourth;}' + - - 'ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) ". ";'+ - 'counter-increment: fifth;}' + - - 'ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) ". ";'+ - 'counter-increment: sixth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) ". ";'+ - 'counter-increment: seventh;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) ". ";'+ - 'counter-increment: eigth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) ". ";'+ - 'counter-increment: ninth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) ". ";'+ - 'counter-increment: tenth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) ". ";'+ - 'counter-increment: eleventh;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) ". ";'+ - 'counter-increment: twelth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) ". ";'+ - 'counter-increment: thirteenth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) ". ";'+ - 'counter-increment: fourteenth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) ". ";'+ - 'counter-increment: fifteenth;}' + - - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {' + - 'content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) "." counter(sixthteenth) ". ";'+ - 'counter-increment: sixthteenth;}' + - - 'ol{ text-indent: 0px; }' + - 'ol > ol{ text-indent: 10px; }' + - 'ol > ol > ol{ text-indent: 20px; }' + - 'ol > ol > ol > ol{ text-indent: 30px; }' + - 'ol > ol > ol > ol > ol{ text-indent: 40px; }' + - 'ol > ol > ol > ol > ol > ol{ text-indent: 50px; }' + - 'ol > ol > ol > ol > ol > ol > ol{ text-indent: 60px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 70px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 80px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 90px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 100px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 110px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { text-indent: 120px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 130px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 140px; }' + - 'ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 150px; }' + - - stylesForExportCSS + - '</style>\n' + '</head>\n') + - '<body>'; - var foot = '</body>\n</html>\n'; getPadHTML(pad, revNum, function (err, html) { if(ERR(err, callback)) return; - callback(null, head + html + foot); + var exportedDoc = eejs.require("ep_etherpad-lite/templates/export_html.html", { + body: html, + padId: Security.escapeHTML(padId), + extraCSS: stylesForExportCSS + }); + callback(null, exportedDoc); }); }); }); diff --git a/src/node/utils/ExportTxt.js b/src/node/utils/ExportTxt.js index a6bec4a5..e3ce0152 100644 --- a/src/node/utils/ExportTxt.js +++ b/src/node/utils/ExportTxt.js @@ -192,7 +192,7 @@ function getTXTFromAtext(pad, atext, authorColors) tags2close.push(i); } } - + for (var i = 0; i < propVals.length; i++) { if (propVals[i] === ENTER || propVals[i] === STAY) @@ -208,10 +208,10 @@ function getTXTFromAtext(pad, atext, authorColors) { chars--; // exclude newline at end of line, if present } - + var s = taker.take(chars); - // removes the characters with the code 12. Don't know where they come + // removes the characters with the code 12. Don't know where they come // from but they break the abiword parser and are completly useless // s = s.replace(String.fromCharCode(12), ""); @@ -221,7 +221,7 @@ function getTXTFromAtext(pad, atext, authorColors) assem.append(s); } // end iteration over spans in line - + var tags2close = []; for (var i = propVals.length - 1; i >= 0; i--) { @@ -231,7 +231,7 @@ function getTXTFromAtext(pad, atext, authorColors) propVals[i] = false; } } - + } // end processNextChars processNextChars(text.length - idx); return(assem.toString()); @@ -271,7 +271,7 @@ function getTXTFromAtext(pad, atext, authorColors) } exports.getTXTFromAtext = getTXTFromAtext; -exports.getPadTXTDocument = function (padId, revNum, noDocType, callback) +exports.getPadTXTDocument = function (padId, revNum, callback) { padManager.getPad(padId, function (err, pad) { diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index def7b090..0970666e 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -5459,7 +5459,16 @@ function Ace2Inner(){ // and the line-numbers don't line up unless we pay // attention to where the divs are actually placed... // (also: padding on TTs/SPANs in IE...) - h = b.nextSibling.offsetTop - b.offsetTop; + if (b === doc.body.firstChild) { + // It's the first line. For line number alignment purposes, its + // height is taken to be the top offset of the next line. If we + // didn't do this special case, we would miss out on any top margin + // included on the first line. The default stylesheet doesn't add + // extra margins, but plugins might. + h = b.nextSibling.offsetTop; + } else { + h = b.nextSibling.offsetTop - b.offsetTop; + } } if (h) { diff --git a/src/templates/admin/index.html b/src/templates/admin/index.html index f6e9e29e..45755a49 100644 --- a/src/templates/admin/index.html +++ b/src/templates/admin/index.html @@ -20,5 +20,6 @@ </ul> </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/plugins-info.html b/src/templates/admin/plugins-info.html index 5d39c388..8dd0bf88 100644 --- a/src/templates/admin/plugins-info.html +++ b/src/templates/admin/plugins-info.html @@ -41,5 +41,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/plugins.html b/src/templates/admin/plugins.html index 71c4dbcc..0fff7843 100644 --- a/src/templates/admin/plugins.html +++ b/src/templates/admin/plugins.html @@ -112,5 +112,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/settings.html b/src/templates/admin/settings.html index 560ac507..74f35521 100644 --- a/src/templates/admin/settings.html +++ b/src/templates/admin/settings.html @@ -50,5 +50,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/export_html.html b/src/templates/export_html.html new file mode 100644 index 00000000..b29941c9 --- /dev/null +++ b/src/templates/export_html.html @@ -0,0 +1,144 @@ +<!doctype html> +<html lang="en"> +<head> +<title><%- padId %></title> +<meta name="generator" content="Etherpad"> +<meta name="author" content="Etherpad"> +<meta name="changedby" content="Etherpad"> +<meta charset="utf-8"> +<style> +* { + font-family: arial, sans-serif; + font-size: 13px; + line-height: 17px; +} +ul.indent { + list-style-type: none; +} +ol { + list-style-type: none; + padding-left: 0; +} +body > ol { + counter-reset: first second third fourth fifth sixth seventh eigth ninth tenth eleventh twelth thirteenth fourteenth fifteenth sixteenth; +} +ol > li:before { + content: counter(first) ". "; + counter-increment: first; +} +ol > ol > li:before { + content: counter(first) "." counter(second) ". "; + counter-increment: second; +} +ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) ". "; + counter-increment: third; +} +ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) ". "; + counter-increment: fourth; +} +ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) ". "; + counter-increment: fifth; +} +ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) ". "; + counter-increment: sixth; +} +ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) ". "; + counter-increment: seventh; +} +ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) ". "; + counter-increment: eigth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) ". "; + counter-increment: ninth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) ". "; + counter-increment: tenth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) ". "; + counter-increment: eleventh; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) ". "; + counter-increment: twelth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) ". "; + counter-increment: thirteenth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) ". "; + counter-increment: fourteenth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) ". "; + counter-increment: fifteenth; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) "." counter(sixthteenth) ". "; + counter-increment: sixthteenth; +} +ol { + text-indent: 0px; +} +ol > ol { + text-indent: 10px; +} +ol > ol > ol { + text-indent: 20px; +} +ol > ol > ol > ol { + text-indent: 30px; +} +ol > ol > ol > ol > ol { + text-indent: 40px; +} +ol > ol > ol > ol > ol > ol { + text-indent: 50px; +} +ol > ol > ol > ol > ol > ol > ol { + text-indent: 60px; +} +ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 70px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 80px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 90px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 100px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 110px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 120px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 130px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 140px; +} +ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { + text-indent: 150px; +} +<%- extraCSS %> +</style> +</head> +<body> +<%- body %> +<div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> +</body> +</html> diff --git a/src/templates/index.html b/src/templates/index.html index f91e3fe6..e1f59c1e 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -29,7 +29,7 @@ */ </script> - <meta charset="utf-8"> + <meta charset="utf-8"> <meta name="referrer" content="no-referrer"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <link rel="shortcut icon" href="<%=settings.favicon%>"> @@ -122,7 +122,7 @@ input[type="text"] { border-radius: 3px; box-sizing: border-box; - -moz-box-sizing: border-box; + -moz-box-sizing: border-box; line-height:36px; /* IE8 hack */ padding: 0px 45px 0 10px; *padding: 0; /* IE7 hack */ @@ -149,22 +149,22 @@ margin-top: 0; } #inner { - width: 95%; + width: 95%; } #label { text-align: center; } } </style> - <link href="static/custom/index.css" rel="stylesheet"> + <link href="static/custom/index.css" rel="stylesheet"> <div id="wrapper"> <% e.begin_block("indexWrapper"); %> <div id="inner"> <buttOn id="button" onclick="go2Random()" data-l10n-id="index.newPad"></button> - <label id="label" for="padname" data-l10n-id="index.createOpenPad"></label> - <form action="#" onsubmit="go2Name();return false;"> - <input type="text" id="padname" maxlength="50" autofocus x-webkit-speech> + <label id="label" for="padname" data-l10n-id="index.createOpenPad"></label> + <form action="#" onsubmit="go2Name();return false;"> + <input type="text" id="padname" maxlength="50" autofocus x-webkit-speech> <button type="submit">OK</button> </form> </div> @@ -172,33 +172,35 @@ </div> <script src="static/custom/index.js"></script> - <script> - - function go2Name() + <script> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt + function go2Name() { var padname = document.getElementById("padname").value; padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name") } - - function go2Random() + + function go2Random() { window.location = "p/" + randomPadName(); } - - function randomPadName() + + function randomPadName() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var string_length = 10; var randomstring = ''; - for (var i = 0; i < string_length; i++) + for (var i = 0; i < string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum, rnum + 1); } return randomstring; } - + // start the custom js if (typeof customStart == "function") customStart(); + // @license-end </script> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </html> diff --git a/src/templates/javascript.html b/src/templates/javascript.html new file mode 100644 index 00000000..29031c4b --- /dev/null +++ b/src/templates/javascript.html @@ -0,0 +1,73 @@ +<!doctype html> +<html> + <head> + <title>JavaScript license information</title> + <meta charset="utf-8"> + <meta name="robots" content="noindex, nofollow"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> + </head> + <body> + <table id="jslicense-labels1"> + <tr> + <td><a href="/static/js/jquery-2.1.1.min.js">jquery-2.1.1.min.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/jquery.js">jquery.js</a></td> + </tr> + <tr> + <td><a href="/static/js/html10n.js">html10n.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/html10n.js">html10n.js</a></td> + </tr> + <tr> + <td><a href="/static/js/l10n.js">l10n.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/l10n.js">l10n.js</a></td> + </tr> + <tr> + <td><a href="/static/js/socket.io.js">socket.io.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/socket.io.js">socket.io.js</a></td> + </tr> + <tr> + <td><a href="/static/js/require-kernel.js">require-kernel.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/require-kernel.js">require-kernel.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/index.js">index.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/index.js">index.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/timeslider.js">timeslider.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/timeslider.js">timeslider.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/pad.js">pad.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/pad.js">pad.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/plugins.js">plugins.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/admin/plugins.js">plugins.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/minify.json.js">minify.json.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/admin/minify.json.js">minify.json.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/settings.js">settings.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/admin/settings.js">settings.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/jquery.autosize.js">jquery.autosize.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/admin/jquery.autosize.js">jquery.autosize.js</a></td> + </tr> + </table> + </body> +</html> diff --git a/src/templates/pad.html b/src/templates/pad.html index 79ea0b58..271bbb2d 100644 --- a/src/templates/pad.html +++ b/src/templates/pad.html @@ -351,6 +351,7 @@ <% e.begin_block("scripts"); %> <script type="text/javascript"> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt (function() { // Display errors on page load to the user // (Gets overridden by padutils.setupGlobalExceptionHandler) @@ -364,6 +365,7 @@ if(typeof(originalHandler) == 'function') originalHandler.call(null, arguments); }; })(); + // @license-end </script> <script type="text/javascript" src="../static/js/require-kernel.js"></script> @@ -379,6 +381,7 @@ <!-- Bootstrap page --> <script type="text/javascript"> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt var clientVars = {}; (function () { var pathComponents = location.pathname.split('/'); @@ -416,6 +419,8 @@ padeditbar = require('ep_etherpad-lite/static/js/pad_editbar').padeditbar; padimpexp = require('ep_etherpad-lite/static/js/pad_impexp').padimpexp; }()); + // @license-end </script> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> <% e.end_block(); %> </html> diff --git a/src/templates/timeslider.html b/src/templates/timeslider.html index a8c85241..395d0c47 100644 --- a/src/templates/timeslider.html +++ b/src/templates/timeslider.html @@ -231,6 +231,7 @@ <!-- Bootstrap --> <script type="text/javascript" > + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt var clientVars = {}; var BroadcastSlider; (function () { @@ -267,8 +268,9 @@ padeditbar.init() }); })(); + // @license-end </script> <% e.end_block(); %> +<div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> - |