diff --git a/settings.json.template b/settings.json.template index 4894f897..f6f3e5b8 100644 --- a/settings.json.template +++ b/settings.json.template @@ -65,7 +65,7 @@ "maxAge" : 21600, // 60 * 60 * 6 = 6 hours /* This is the path to the Abiword executable. Setting it to null, disables abiword. - Abiword is needed to enable the import/export of pads*/ + Abiword is needed to advanced import/export features of pads*/ "abiword" : null, /* This setting is used if you require authentication of all users. diff --git a/src/locales/ca.ini b/src/locales/ca.ini new file mode 100644 index 00000000..e9437eda --- /dev/null +++ b/src/locales/ca.ini @@ -0,0 +1,36 @@ +; Exported from translatewiki.net +; Author: Pginer +; Author: Toniher +[ca] +pad.toolbar.bold.title = Negreta (Ctrl-B) +pad.toolbar.italic.title = Cursiva (Ctrl-I) +pad.toolbar.ol.title = Llista ordenada +pad.toolbar.ul.title = Llista sense ordenar +pad.toolbar.undo.title = Desfés (Ctrl-Z) +pad.toolbar.redo.title = Refés (Ctrl-Y) +pad.toolbar.settings.title = Configuració +pad.colorpicker.save = Desa +pad.colorpicker.cancel = Cancel·la +pad.loading = S'està carregant... +pad.settings.fontType.normal = Normal +pad.settings.language = Llengua: +pad.importExport.import_export = Importació/exportació +pad.importExport.exporthtml = HTML +pad.importExport.exportplain = Text net +pad.modals.slowcommit.explanation = El servidor no respon. +pad.share.readonly = Només de lectura +pad.share.link = Enllaç +timeslider.toolbar.authors = Autors: +timeslider.toolbar.authorsList = No hi ha autors +timeslider.month.january = Gener +timeslider.month.february = Febrer +timeslider.month.march = Març +timeslider.month.april = Abril +timeslider.month.may = Maig +timeslider.month.june = Juny +timeslider.month.july = Juliol +timeslider.month.august = Agost +timeslider.month.september = Setembre +timeslider.month.october = Octubre +timeslider.month.november = Novembre +timeslider.month.december = Desembre diff --git a/src/locales/de.ini b/src/locales/de.ini index f153ba77..0a9ab58e 100644 --- a/src/locales/de.ini +++ b/src/locales/de.ini @@ -1,5 +1,6 @@ ; Exported from translatewiki.net ; Author: Metalhead64 +; Author: Mklehr ; Author: Wikinaut [de] index.newPad = Neues Pad @@ -77,3 +78,18 @@ timeslider.toolbar.returnbutton = Zurück zum Pad timeslider.toolbar.authors = Autoren: timeslider.toolbar.authorsList = keine Autoren timeslider.exportCurrent = Exportiere diese Version als: +timeslider.version = Version {{version}} +timeslider.saved = Gespeichert am {{day}}.{{month}}.{{year}} +timeslider.dateformat = {{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Januar +timeslider.month.february = Februar +timeslider.month.march = März +timeslider.month.april = April +timeslider.month.may = Mai +timeslider.month.june = Juni +timeslider.month.july = Juli +timeslider.month.august = August +timeslider.month.september = September +timeslider.month.october = Oktober +timeslider.month.november = November +timeslider.month.december = Dezember diff --git a/src/locales/en.ini b/src/locales/en.ini index e542594d..82b429f8 100644 --- a/src/locales/en.ini +++ b/src/locales/en.ini @@ -21,6 +21,9 @@ pad.toolbar.showusers.title = Show the users on this pad pad.colorpicker.save = Save pad.colorpicker.cancel = Cancel pad.loading = Loading... +pad.passwordRequired = You need a password to access this pad +pad.permissionDenied = You do not have permission to access this pad +pad.wrongPassword = Your password was wrong pad.settings.padSettings = Pad Settings pad.settings.myView = My View pad.settings.stickychat = Chat always on screen @@ -41,6 +44,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = You only can import from plain text or html formats. For more advanced import features please install abiword. pad.modals.connected = Connected. pad.modals.reconnecting = Reconnecting to your pad.. pad.modals.forcereconnect = Force reconnect diff --git a/src/locales/es.ini b/src/locales/es.ini index 95c731ef..ad834013 100644 --- a/src/locales/es.ini +++ b/src/locales/es.ini @@ -1,4 +1,5 @@ ; Exported from translatewiki.net +; Author: Armando-Martin ; Author: Jacobo ; Author: McDutchie ; Author: Xuacu @@ -45,6 +46,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Sólo puede importar formatos de texto plano o html. Para funciones más avanzadas instale abiword. pad.modals.connected = Conectado. pad.modals.reconnecting = Reconectando a tu pad.. pad.modals.forcereconnect = Reconexión forzosa @@ -78,3 +80,18 @@ timeslider.toolbar.returnbutton = Volver al pad timeslider.toolbar.authors = Autores: timeslider.toolbar.authorsList = Sin autores timeslider.exportCurrent = Exportar la versión actual como: +timeslider.version = Versión {{version}} +timeslider.saved = Guardado el {{day}} de {{month}} de {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Enero +timeslider.month.february = Febrero +timeslider.month.march = Marzo +timeslider.month.april = Abril +timeslider.month.may = Mayo +timeslider.month.june = Junio +timeslider.month.july = Julio +timeslider.month.august = Agosto +timeslider.month.september = Septiembre +timeslider.month.october = Octubre +timeslider.month.november = Noviembre +timeslider.month.december = Diciembre diff --git a/src/locales/fi.ini b/src/locales/fi.ini index 0a9c4f6c..9442db49 100644 --- a/src/locales/fi.ini +++ b/src/locales/fi.ini @@ -5,7 +5,7 @@ ; Author: Nike [fi] index.newPad = Uusi muistio -index.createOpenPad = tai luo/avaa muistio nimellä: +index.createOpenPad = tai luo tai avaa muistio nimellä: pad.toolbar.bold.title = Lihavointi (Ctrl-B) pad.toolbar.italic.title = Kursivointi (Ctrl-I) pad.toolbar.underline.title = Alleviivaus (Ctrl-U) diff --git a/src/locales/fr.ini b/src/locales/fr.ini index 7ac51f9c..ee1f66dc 100644 --- a/src/locales/fr.ini +++ b/src/locales/fr.ini @@ -1,6 +1,7 @@ ; Exported from translatewiki.net ; Author: Crochet.david ; Author: Gomoko +; Author: Goofy ; Author: Jean-Frédéric ; Author: Leviathan ; Author: McDutchie @@ -13,14 +14,14 @@ pad.toolbar.italic.title = Italique (Ctrl-I) pad.toolbar.underline.title = Souligner (Ctrl-U) pad.toolbar.strikethrough.title = Barrer pad.toolbar.ol.title = Liste ordonnée -pad.toolbar.ul.title = Liste non-ordonnée +pad.toolbar.ul.title = Liste à puces pad.toolbar.indent.title = Indenter pad.toolbar.unindent.title = Désindenter pad.toolbar.undo.title = Annuler (Ctrl-Z) pad.toolbar.redo.title = Rétablir (Ctrl-Y) pad.toolbar.clearAuthorship.title = Effacer les couleurs identifiant les auteurs pad.toolbar.import_export.title = Importer/Exporter de/vers un format de fichier différent -pad.toolbar.timeslider.title = Navigateur d’historique +pad.toolbar.timeslider.title = Historique dynamique pad.toolbar.savedRevision.title = Versions enregistrées pad.toolbar.settings.title = Paramètres pad.toolbar.embed.title = Intégrer ce Pad @@ -30,9 +31,9 @@ pad.colorpicker.cancel = Annuler pad.loading = Chargement… pad.settings.padSettings = Paramètres du Pad pad.settings.myView = Ma vue -pad.settings.stickychat = Messagerie toujours affichée +pad.settings.stickychat = Toujours afficher le chat pad.settings.colorcheck = Couleurs d’identification -pad.settings.linenocheck = Numéros des lignes +pad.settings.linenocheck = Numéros de lignes pad.settings.fontType = Type de police : pad.settings.fontType.normal = Normal pad.settings.fontType.monospaced = Monospace @@ -55,29 +56,44 @@ pad.modals.uderdup = Ouvert dans une autre fenêtre pad.modals.userdup.explanation = Il semble que ce Pad soit ouvert dans plusieurs fenêtres de votre navigateur sur cet ordinateur. pad.modals.userdup.advice = Se reconnecter en utilisant cette fenêtre. pad.modals.unauth = Non autorisé -pad.modals.unauth.explanation = Vos permissions ont été changées lors de la visualisation de cette page. Essayer de vous reconnecter. +pad.modals.unauth.explanation = Vos permissions ont été changées lors de l'affichage de cette page. Essayer de vous reconnecter. pad.modals.looping = Déconnecté. pad.modals.looping.explanation = Nous éprouvons un problème de communication au serveur de synchronisation. -pad.modals.looping.cause = Il est possible que leur connection soit protégée par un pare-feu incompatible ou un serveur proxy incompatible. +pad.modals.looping.cause = Il est possible que votre connexion soit protégée par un pare-feu incompatible ou un serveur proxy incompatible. pad.modals.initsocketfail = Le serveur est introuvable. pad.modals.initsocketfail.explanation = Impossible de se connecter au serveur de synchronisation. -pad.modals.initsocketfail.cause = La cause de ce problème peut être liée à votre fureteur web. +pad.modals.initsocketfail.cause = Le problème peut venir de votre navigateur web ou de votre connexion Internet. pad.modals.slowcommit = Déconnecté. pad.modals.slowcommit.explanation = Le serveur ne répond pas. -pad.modals.slowcommit.cause = La cause de ce problème peut être liée à une erreur de connectivité du réseau. +pad.modals.slowcommit.cause = Ce problème peut venir d'une mauvaise connectivité au réseau. pad.modals.deleted = Supprimé. pad.modals.deleted.explanation = Ce Pad a été supprimé. pad.modals.disconnected = Vous avez été déconnecté. pad.modals.disconnected.explanation = La connexion au serveur a échoué. -pad.modals.disconnected.cause = Ce serveur est possiblement hors-ligne. Veuillez nous joindre si le problème persiste. +pad.modals.disconnected.cause = Il se peut que le serveur soit indisponible. Veuillez nous en informer si le problème persiste. pad.share = Partager ce Pad pad.share.readonly = Lecture seule pad.share.link = Lien pad.share.emebdcode = Lien à intégrer -pad.chat = Messagerie -pad.chat.title = Ouvrir la messagerie liée au Pad. -timeslider.pageTitle = {{appTitle}} Curseur temporel +pad.chat = Chat +pad.chat.title = Ouvrir le chat associé à ce pad. +timeslider.pageTitle = Historique dynamique de {{appTitle}} timeslider.toolbar.returnbutton = Retour à ce Pad. timeslider.toolbar.authors = Auteurs : timeslider.toolbar.authorsList = Aucun auteur -timeslider.exportCurrent = Exporter version actuelle vers : +timeslider.exportCurrent = Exporter la version actuelle en : +timeslider.version = Version {{version}} +timeslider.saved = Enregistré le {{day}} {{month}} {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} à {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Janvier +timeslider.month.february = Février +timeslider.month.march = Mars +timeslider.month.april = Avril +timeslider.month.may = Mai +timeslider.month.june = Juin +timeslider.month.july = Juillet +timeslider.month.august = Août +timeslider.month.september = Septembre +timeslider.month.october = Octobre +timeslider.month.november = Novembre +timeslider.month.december = Décembre diff --git a/src/locales/gl.ini b/src/locales/gl.ini index 017c61f2..a824fb46 100644 --- a/src/locales/gl.ini +++ b/src/locales/gl.ini @@ -76,3 +76,18 @@ timeslider.toolbar.returnbutton = Volver ao documento timeslider.toolbar.authors = Autores: timeslider.toolbar.authorsList = Ningún autor timeslider.exportCurrent = Exportar a versión actual en formato: +timeslider.version = Versión {{version}} +timeslider.saved = Gardado o {{day}} de {{month}} de {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = xaneiro +timeslider.month.february = febreiro +timeslider.month.march = marzo +timeslider.month.april = abril +timeslider.month.may = maio +timeslider.month.june = xuño +timeslider.month.july = xullo +timeslider.month.august = agosto +timeslider.month.september = setembro +timeslider.month.october = outubro +timeslider.month.november = novembro +timeslider.month.december = decembro diff --git a/src/locales/ja.ini b/src/locales/ja.ini index c092e07c..5ad25392 100644 --- a/src/locales/ja.ini +++ b/src/locales/ja.ini @@ -76,3 +76,18 @@ timeslider.toolbar.returnbutton = パッドに戻る timeslider.toolbar.authors = 作者: timeslider.toolbar.authorsList = 作者なし timeslider.exportCurrent = 現在の版をエクスポートする形式: +timeslider.version = バージョン {{version}} +timeslider.saved = | {{year}}年{{month}}{{day}}日に保存 +timeslider.dateformat = {{year}}年{{month}}{{day}}日 {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = 1月 +timeslider.month.february = 2月 +timeslider.month.march = 3月 +timeslider.month.april = 4月 +timeslider.month.may = 5月 +timeslider.month.june = 6月 +timeslider.month.july = 7月 +timeslider.month.august = 8月 +timeslider.month.september = 9月 +timeslider.month.october = 10月 +timeslider.month.november = 11月 +timeslider.month.december = 12月 diff --git a/src/locales/ksh.ini b/src/locales/ksh.ini index fcd972c1..372d36ee 100644 --- a/src/locales/ksh.ini +++ b/src/locales/ksh.ini @@ -40,10 +40,8 @@ pad.importExport.export = Don dat Pädd äxpoteere alß: pad.importExport.exporthtml = HTML pad.importExport.exportplain = Eijfach Täx pad.importExport.exportword = Microsoft Word -pad.importExport.exportpdf = PDF -(Poteerbaa Dokemänte Fommaat) -pad.importExport.exportopen = ODF -(Offe Dokemänte-Fommaat) +pad.importExport.exportpdf = PDF (Poteerbaa Dokemänte Fommaat) +pad.importExport.exportopen = ODF (Offe Dokemänte-Fommaat) pad.importExport.exportdokuwiki = DokuWiki pad.modals.connected = Verbonge. pad.modals.reconnecting = Ben wider aam Verbenge … @@ -55,7 +53,7 @@ pad.modals.unauth = Nit berääschtesch pad.modals.unauth.explanation = Ding Berääschtejong hät sesch jeändert, derwiehl De di Sigg aam beloore wohrß. Versöhk en neu Verbendong ze maache. pad.modals.looping = De Verbendong es fott. pad.modals.looping.explanation = Et jitt Probleeme met dä Verbendong mem ẞööver för de Schriiver ier Aandeile zesamme_ze_bränge. -pad.modals.looping.cause = Künnt sin, Ding Verbendong jeiht dorj_en onzopaß proxy-ööver udder firewall +pad.modals.looping.cause = Künnt sin, Ding Verbendong jeiht dorj_ene onzopaß proxy-ẞööver udder firewall. pad.modals.initsocketfail = Dä ẞööver es nit ze äreische. pad.modals.initsocketfail.explanation = Kein Verbendong met däm ẞööver ze krijje. pad.modals.initsocketfail.cause = Dat künnt aam Brauser udder aan däm singer Verbendong övver et Internet lijje. @@ -79,3 +77,18 @@ timeslider.toolbar.returnbutton = Jangk retuur nohm Pädd timeslider.toolbar.authors = Schriiver: timeslider.toolbar.authorsList = Kein Schriivere timeslider.exportCurrent = Donn de meußte Väsjohn äxpotteere alß: +timeslider.version = Väsjon {{version}} +timeslider.saved = Faßjehallde aam {{day}}. {{month}} {{year}} +timeslider.dateformat = amm {{day}}. {{month}} {{year}} öm {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Jannewaa +timeslider.month.february = Fääbrowaa +timeslider.month.march = Määz +timeslider.month.april = Apprell +timeslider.month.may = Mai +timeslider.month.june = Juuni +timeslider.month.july = Juuli +timeslider.month.august = Oujoß +timeslider.month.september = Säptämber +timeslider.month.october = Oktoober +timeslider.month.november = Novämber +timeslider.month.december = Dezämber diff --git a/src/locales/mk.ini b/src/locales/mk.ini index c5205229..b1aaf323 100644 --- a/src/locales/mk.ini +++ b/src/locales/mk.ini @@ -76,3 +76,18 @@ timeslider.toolbar.returnbutton = Назад на тетратката timeslider.toolbar.authors = Автори: timeslider.toolbar.authorsList = Нема автори timeslider.exportCurrent = Извези ја тековната верзија како: +timeslider.version = Верзија {{version}} +timeslider.saved = Зачувано на {{day}} {{month}} {{year}} г. +timeslider.dateformat = {{day}}/{{month}}/{{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 = декември diff --git a/src/locales/ml.ini b/src/locales/ml.ini index 409b6b10..0c374426 100644 --- a/src/locales/ml.ini +++ b/src/locales/ml.ini @@ -1,78 +1,93 @@ ; Exported from translatewiki.net +; Author: Praveenp ; Author: Santhosh.thottingal [ml] -index.newPad = പുതിയ ഏടു് -index.createOpenPad = അല്ലെങ്കിൽ പേരുകൊടുത്തു് ഒരു ഏടുണ്ടാക്കുകയോ തുറക്കുകയോ ചെയ്യുക -pad.toolbar.bold.title = കട്ടി (Ctrl-B) -pad.toolbar.italic.title = ചെരിക്കുക (Ctrl-I) -pad.toolbar.underline.title = അടിവര (Ctrl-U) +index.newPad = പുതിയ പാഡ് +index.createOpenPad = അല്ലെങ്കിൽ പേരുപയോഗിച്ച് പാഡ് സൃഷ്ടിക്കുക/തുറക്കുക: +pad.toolbar.bold.title = കട്ടികൂട്ടിയെഴുതുക (Ctrl-B) +pad.toolbar.italic.title = ചെരിച്ചെഴുതുക (Ctrl-I) +pad.toolbar.underline.title = അടിവരയിടുക (Ctrl-U) pad.toolbar.strikethrough.title = വെട്ടുക pad.toolbar.ol.title = ക്രമത്തിലുള്ള പട്ടിക pad.toolbar.ul.title = ക്രമരഹിത പട്ടിക -pad.toolbar.indent.title = വലത്തേക്കു് തള്ളുക -pad.toolbar.unindent.title = ഇടത്തേക്കു് തള്ളുക -pad.toolbar.undo.title = വേണ്ട (Ctrl-Z) -pad.toolbar.redo.title = വീണ്ടും (Ctrl-Y) -pad.toolbar.clearAuthorship.title = എഴുത്തിയവർക്കുള്ള നിറം കളയുക -pad.toolbar.import_export.title = വിവിധ ഫയൽത്തരങ്ങളിലേക്ക്/നിന്നും എടുക്കുക +pad.toolbar.indent.title = വലത്തേക്ക് തള്ളുക +pad.toolbar.unindent.title = ഇടത്തേക്ക് തള്ളുക +pad.toolbar.undo.title = തിരസ്കരിക്കുക (Ctrl-Z) +pad.toolbar.redo.title = വീണ്ടും ചെയ്യുക (Ctrl-Y) +pad.toolbar.clearAuthorship.title = രചയിതാക്കൾക്കുള്ള നിറം കളയുക +pad.toolbar.import_export.title = വ്യത്യസ്ത ഫയൽ തരങ്ങളിലേക്ക്/തരങ്ങളിൽ നിന്ന് ഇറക്കുമതി/കയറ്റുമതി ചെയ്യുക pad.toolbar.timeslider.title = സമയരേഖ -pad.toolbar.savedRevision.title = എടുത്തുവെച്ച ലക്കങ്ങൾ -pad.toolbar.settings.title = ക്രമീകരണങ്ങൾ -pad.toolbar.embed.title = ഈ ഏടു് ഉൾപ്പെടുത്തുക -pad.toolbar.showusers.title = ഈ ഏടിലുള്ളവരെ കാണുക -pad.colorpicker.save = എടുത്തുവെയ്ക്കുക +pad.toolbar.savedRevision.title = സേവ് ചെയ്തിട്ടുള്ള നാൾപ്പതിപ്പുകൾ +pad.toolbar.settings.title = സജ്ജീകരണങ്ങൾ +pad.toolbar.embed.title = ഈ പാഡ് എംബെഡ് ചെയ്യുക +pad.toolbar.showusers.title = ഈ പാഡിലുള്ള ഉപയോക്താക്കളെ പ്രദർശിപ്പിക്കുക +pad.colorpicker.save = സേവ് ചെയ്യുക pad.colorpicker.cancel = റദ്ദാക്കുക -pad.loading = എടുക്കുന്നു... -pad.settings.padSettings = ഏടിന്റെ ക്രമീകരണങ്ങൾ +pad.loading = ശേഖരിക്കുന്നു... +pad.settings.padSettings = പാഡ് സജ്ജീകരണങ്ങൾ pad.settings.myView = എന്റെ കാഴ്ച -pad.settings.stickychat = സംവാദം കാണിക്കുക +pad.settings.stickychat = തത്സമയം സംവാദം എപ്പോഴും സ്ക്രീനിൽ കാണിക്കുക pad.settings.colorcheck = എഴുത്തുകാർക്കുള്ള നിറങ്ങൾ pad.settings.linenocheck = എണ്ണമിട്ട വരികൾ -pad.settings.fontType = അക്ഷരത്തിന്റെ തരം +pad.settings.fontType = ഫോണ്ട് തരം: pad.settings.fontType.normal = സാധാരണം -pad.settings.fontType.monospaced = ഒരേവീതി +pad.settings.fontType.monospaced = മോണോസ്പേസ് pad.settings.globalView = മൊത്തക്കാഴ്ച pad.settings.language = ഭാഷ: -pad.importExport.import_export = എടുക്കുക/കയറ്റുക -pad.importExport.import = ഫയലോ രേഖയോ കേറ്റൂക +pad.importExport.import_export = ഇറക്കുമതി/കയറ്റുമതി ചെയ്യുക +pad.importExport.import = എന്തെങ്കിലും എഴുത്തു പ്രമാണമോ രേഖയോ അപ്‌ലോഡ് ചെയ്യുക pad.importExport.successful = വിജയകരം! -pad.importExport.export = ഈ ഏടു് എടുത്തുവെയ്ക്കുക: -pad.importExport.exporthtml = HTML -pad.importExport.exportplain = വെറും എഴുത്തു് -pad.importExport.exportword = Microsoft Word -pad.importExport.exportpdf = PDF -pad.importExport.exportopen = ODF (Open Document Format) -pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.export = ഇപ്പോഴത്തെ പാഡ് ഇങ്ങനെ കയറ്റുമതി ചെയ്യുക: +pad.importExport.exporthtml = എച്ച്.റ്റി.എം.എൽ. +pad.importExport.exportplain = വെറും എഴുത്ത് +pad.importExport.exportword = മൈക്രോസോഫ്റ്റ് വേഡ് +pad.importExport.exportpdf = പി.ഡി.എഫ്. +pad.importExport.exportopen = ഒ.ഡി.എഫ്. (ഓപ്പൺ ഡോക്യുമെന്റ് ഫോർമാറ്റ്) +pad.importExport.exportdokuwiki = ഡോകുവിക്കി pad.modals.connected = ബന്ധിപ്പിച്ചിരിക്കുന്നു. -pad.modals.reconnecting = ഏടു് വീണ്ടും ബന്ധിപ്പിക്കുന്നു... +pad.modals.reconnecting = താങ്കളുടെ പാഡിലേയ്ക്ക് വീണ്ടും ബന്ധിപ്പിക്കുന്നു... pad.modals.forcereconnect = എന്തായാലും ബന്ധിപ്പിക്കുക -pad.modals.uderdup = വേറെ ജാലകത്തിൽ തുറന്നു -pad.modals.userdup.explanation = ഈ ഏടു് ഒന്നിലധികം ബൌസർ ജാലകങ്ങളിൽ ഈ കമ്പ്യൂട്ടറിൽ തുറന്നതായി കാണുന്നു. +pad.modals.uderdup = മറ്റൊരു ജാലകത്തിൽ തുറന്നു +pad.modals.userdup.explanation = ഈ കമ്പ്യൂട്ടറിൽ ഈ പാഡ് ഒന്നിലധികം ബ്രൗസർ ജാലകങ്ങളിൽ തുറന്നതായി കാണുന്നു. pad.modals.userdup.advice = ഈ ജാലകം തന്നെ ഉപയോഗിക്കാനായി ബന്ധിപ്പിക്കുക -pad.modals.unauth = അനുവാദമില്ല. -pad.modals.unauth.explanation = നിങ്ങളുടെ അനുവാദങ്ങൾ മാറിയിരിക്കുന്നു. വീണ്ടും ബന്ധിപ്പിക്കുക +pad.modals.unauth = അനുവാദമില്ല +pad.modals.unauth.explanation = ഈ താൾ കണ്ടുകൊണ്ടിരിക്കെ താങ്കൾക്കുള്ള അനുമതികളിൽ മാറ്റമുണ്ടായി. വീണ്ടും ബന്ധപ്പെടാൻ ശ്രമിക്കുക. pad.modals.looping = വേർപെട്ടു. -pad.modals.looping.explanation = സെർവറുമായുള്ള സംവേദനത്തിൽ തകരാറു് -pad.modals.looping.cause = ഒരുപക്ഷേ പറ്റാത്ത ഫയർവാളിലൂടെയോ പ്രോക്സിയിലൂടെയോ ബന്ധിപ്പിച്ചിരിക്കാം +pad.modals.looping.explanation = സിംക്രണൈസേഷൻ സെർവറുമായുള്ള ആശയവിനിമയത്തിൽ പ്രശ്നങ്ങളുണ്ട്. +pad.modals.looping.cause = ഒരുപക്ഷേ പൊരുത്തപ്പെടാത്ത ഫയർവാളിലൂടെയോ പ്രോക്സിയിലൂടെയോ ആകാം താങ്കൾ ബന്ധിച്ചിരുന്നത്. pad.modals.initsocketfail = സെർവറിലെത്താൻ പറ്റുന്നില്ല. -pad.modals.initsocketfail.explanation = സെർവറുമായി ബന്ധപ്പെടാൻ കഴിയുന്നില്ല -pad.modals.initsocketfail.cause = ഇന്റർനെറ്റ് കണക്ഷന്റെയോ ബ്രൌസറിന്റെയോ പ്രശ്നമാകാം +pad.modals.initsocketfail.explanation = സിംക്രണൈസേഷൻ സെർവറുമായി ബന്ധപ്പെടാൻ കഴിഞ്ഞില്ല. +pad.modals.initsocketfail.cause = ഇന്റർനെറ്റ് കണക്ഷന്റെയോ ബ്രൗസറിന്റെയോ പ്രശ്നമാകാം pad.modals.slowcommit = വേർപെട്ടു. pad.modals.slowcommit.explanation = സെർവർ പ്രതികരിക്കുന്നില്ല. pad.modals.slowcommit.cause = നെറ്റ്‌വർക്ക് പ്രശ്നം കാരണമാകാം. pad.modals.deleted = മായ്ച്ചു -pad.modals.deleted.explanation = ഈ ഏടു് കളഞ്ഞു -pad.modals.disconnected = നിങ്ങൾ വേർപെട്ടു +pad.modals.deleted.explanation = ഈ പാഡ് നീക്കം ചെയ്തു. +pad.modals.disconnected = താങ്കൾ വേർപെട്ടിരിക്കുന്നു. pad.modals.disconnected.explanation = സെർവറുമായുള്ള ബന്ധം നഷ്ടപ്പെട്ടു -pad.modals.disconnected.cause = സെർവർ ഓടുന്നില്ലായിരിക്കാം. ഇതു് തുടരുന്നെങ്കിൽ ഞങ്ങളെ അറിയിക്കുക -pad.share = ഈ ഏടു് പങ്കിടുക -pad.share.readonly = വായിക്കാൻ മാത്രം +pad.modals.disconnected.cause = സെർവർ ലഭ്യമല്ലായിരിക്കാം. ഇത് തുടർച്ചയായി സംഭവിക്കുന്നുണ്ടെങ്കിൽ ദയവായി ഞങ്ങളെ അറിയിക്കുക. +pad.share = ഈ പാഡ് പങ്കിടുക +pad.share.readonly = വായിക്കൽ മാത്രം pad.share.link = കണ്ണി -pad.share.emebdcode = Embed URL -pad.chat = സംവാദം -pad.chat.title = ഈ ഏടിന്റെ സംവാദം തുറക്കുക +pad.share.emebdcode = എംബെഡ് യു.ആർ.എൽ. +pad.chat = തത്സമയസംവാദം +pad.chat.title = ഈ പാഡിന്റെ തത്സമയസംവാദം തുറക്കുക. timeslider.pageTitle = {{appTitle}} സമയരേഖ -timeslider.toolbar.returnbutton = ഏടിലേക്കു് തിരിച്ചുപോവുക -timeslider.toolbar.authors = എഴുതിയവർ: +timeslider.toolbar.returnbutton = പാഡിലേക്ക് തിരിച്ചുപോവുക +timeslider.toolbar.authors = രചയിതാക്കൾ: timeslider.toolbar.authorsList = ആരും എഴുതിയിട്ടില്ല -timeslider.exportCurrent = ഈ പതിപ്പു് ഇങ്ങനെ എടുക്കുക: +timeslider.exportCurrent = ഈ പതിപ്പ് ഇങ്ങനെ എടുക്കുക: +timeslider.version = പതിപ്പ് {{version}} +timeslider.saved = സേവ് ചെയ്തത് {{month}} {{day}}, {{year}} +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 = ഡിസംബർ diff --git a/src/locales/nl.ini b/src/locales/nl.ini index 94dcb32d..1a078d92 100644 --- a/src/locales/nl.ini +++ b/src/locales/nl.ini @@ -77,3 +77,18 @@ timeslider.toolbar.returnbutton = Terug naar pad timeslider.toolbar.authors = Auteurs: timeslider.toolbar.authorsList = Geen auteurs timeslider.exportCurrent = Huidige versie exporteren als: +timeslider.version = Versie {{version}} +timeslider.saved = Opgeslagen op {{day}} {{month}} {{year}} +timeslider.dateformat = {{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = januari +timeslider.month.february = februari +timeslider.month.march = maart +timeslider.month.april = april +timeslider.month.may = mei +timeslider.month.june = juni +timeslider.month.july = juli +timeslider.month.august = augustus +timeslider.month.september = september +timeslider.month.october = oktober +timeslider.month.november = november +timeslider.month.december = december diff --git a/src/locales/sv.ini b/src/locales/sv.ini index bd3c1e5c..e6844ffb 100644 --- a/src/locales/sv.ini +++ b/src/locales/sv.ini @@ -76,3 +76,18 @@ timeslider.toolbar.returnbutton = Återvänd till blocket timeslider.toolbar.authors = Författare: timeslider.toolbar.authorsList = Ingen författare timeslider.exportCurrent = Exportera aktuell version som: +timeslider.version = Version {{version}} +timeslider.saved = Sparades den {{day}} {{month}} {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = januari +timeslider.month.february = februari +timeslider.month.march = mars +timeslider.month.april = april +timeslider.month.may = maj +timeslider.month.june = juni +timeslider.month.july = juli +timeslider.month.august = augusti +timeslider.month.september = september +timeslider.month.october = oktober +timeslider.month.november = november +timeslider.month.december = december diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index 59e27b55..4289e39c 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -25,7 +25,7 @@ var async = require("async"); var authorManager = require("./AuthorManager"); var padManager = require("./PadManager"); var sessionManager = require("./SessionManager"); -var settings = require("../utils/Settings") +var settings = require("../utils/Settings"); var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; /** @@ -83,7 +83,7 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) // grant access, with author of token callback(null, statusObject); } - }) + }); //don't continue return; @@ -133,10 +133,16 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) var now = Math.floor(new Date().getTime()/1000); //is it for this group? - if(sessionInfo.groupID != groupID) return; + if(sessionInfo.groupID != groupID) { + callback(); + return; + } //is validUntil still ok? - if(sessionInfo.validUntil <= now) return; + if(sessionInfo.validUntil <= now){ + callback(); + return; + } // There is a valid session validSession = true; @@ -282,4 +288,4 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) if(ERR(err, callback)) return; callback(null, statusObject); }); -} +}; diff --git a/src/node/handler/ImportHandler.js b/src/node/handler/ImportHandler.js index 788706ce..815e5357 100644 --- a/src/node/handler/ImportHandler.js +++ b/src/node/handler/ImportHandler.js @@ -4,6 +4,7 @@ /* * 2011 Peter 'Pita' Martischka (Primary Technology Ltd) + * 2012 Iván Eixarch * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,26 +19,20 @@ * limitations under the License. */ -var ERR = require("async-stacktrace"); -var padManager = require("../db/PadManager"); -var padMessageHandler = require("./PadMessageHandler"); -var async = require("async"); -var fs = require("fs"); -var settings = require('../utils/Settings'); -var formidable = require('formidable'); -var os = require("os"); +var ERR = require("async-stacktrace") + , padManager = require("../db/PadManager") + , padMessageHandler = require("./PadMessageHandler") + , async = require("async") + , fs = require("fs") + , path = require("path") + , settings = require('../utils/Settings') + , formidable = require('formidable') + , os = require("os") + , importHtml = require("../utils/ImportHtml"); //load abiword only if its enabled if(settings.abiword != null) var abiword = require("../utils/Abiword"); - -var tempDirectory = "/tmp/"; - -//tempDirectory changes if the operating system is windows -if(os.type().indexOf("Windows") > -1) -{ - tempDirectory = process.env.TEMP; -} /** * do a requested import @@ -45,32 +40,27 @@ if(os.type().indexOf("Windows") > -1) exports.doImport = function(req, res, padId) { //pipe to a file - //convert file to text via abiword - //set text in the pad + //convert file to html via abiword + //set html in the pad - var srcFile, destFile; - var pad; - var text; + var srcFile, destFile + , pad + , text; async.series([ //save the uploaded file to /tmp - function(callback) - { + function(callback) { var form = new formidable.IncomingForm(); form.keepExtensions = true; - form.uploadDir = tempDirectory; - form.parse(req, function(err, fields, files) - { + form.parse(req, function(err, fields, files) { //the upload failed, stop at this point - if(err || files.file === undefined) - { + if(err || files.file === undefined) { console.warn("Uploading Error: " + err.stack); callback("uploadFailed"); } //everything ok, continue - else - { + else { //save the path of the uploaded file srcFile = files.file.path; callback(); @@ -80,57 +70,48 @@ exports.doImport = function(req, res, padId) //ensure this is a file ending we know, else we change the file ending to .txt //this allows us to accept source code files like .c or .java - function(callback) - { - var fileEnding = (srcFile.split(".")[1] || "").toLowerCase(); - var knownFileEndings = ["txt", "doc", "docx", "pdf", "odt", "html", "htm"]; - - //find out if this is a known file ending - var fileEndingKnown = false; - for(var i in knownFileEndings) - { - if(fileEnding == knownFileEndings[i]) - { - fileEndingKnown = true; - } - } + function(callback) { + var fileEnding = path.extname(srcFile).toLowerCase() + , knownFileEndings = [".txt", ".doc", ".docx", ".pdf", ".odt", ".html", ".htm"] + , fileEndingKnown = (knownFileEndings.indexOf(fileEnding) > -1); //if the file ending is known, continue as normal - if(fileEndingKnown) - { + if(fileEndingKnown) { callback(); } //we need to rename this file with a .txt ending - else - { + else { var oldSrcFile = srcFile; - srcFile = srcFile.split(".")[0] + ".txt"; + srcFile = path.join(path.dirname(srcFile),path.basename(srcFile, fileEnding)+".txt"); fs.rename(oldSrcFile, srcFile, callback); } }, - //convert file to text - function(callback) - { + //convert file to html + function(callback) { var randNum = Math.floor(Math.random()*0xFFFFFFFF); - destFile = tempDirectory + "eplite_import_" + randNum + ".txt"; - abiword.convertFile(srcFile, destFile, "txt", function(err){ - //catch convert errors - if(err){ - console.warn("Converting Error:", err); - return callback("convertFailed"); - } else { - callback(); - } - }); + destFile = path.join(os.tmpDir(), "eplite_import_" + randNum + ".htm"); + + if (abiword) { + abiword.convertFile(srcFile, destFile, "htm", function(err) { + //catch convert errors + if(err) { + console.warn("Converting Error:", err); + return callback("convertFailed"); + } else { + callback(); + } + }); + } else { + // if no abiword only rename + fs.rename(srcFile, destFile, callback); + } }, //get the pad object - function(callback) - { - padManager.getPad(padId, function(err, _pad) - { + function(callback) { + padManager.getPad(padId, function(err, _pad){ if(ERR(err, callback)) return; pad = _pad; callback(); @@ -138,52 +119,47 @@ exports.doImport = function(req, res, padId) }, //read the text - function(callback) - { - fs.readFile(destFile, "utf8", function(err, _text) - { + function(callback) { + fs.readFile(destFile, "utf8", function(err, _text){ if(ERR(err, callback)) return; text = _text; //node on windows has a delay on releasing of the file lock. //We add a 100ms delay to work around this - if(os.type().indexOf("Windows") > -1) - { - setTimeout(function() - { - callback(); - }, 100); - } - else - { - callback(); - } + if(os.type().indexOf("Windows") > -1){ + setTimeout(function() {callback();}, 100); + } else { + callback(); + } }); }, //change text of the pad and broadcast the changeset - function(callback) - { - pad.setText(text); + function(callback) { + var fileEnding = path.extname(srcFile).toLowerCase(); + if (abiword || fileEnding == ".htm" || fileEnding == ".html") { + importHtml.setPadHTML(pad, text); + } else { + pad.setText(text); + } padMessageHandler.updatePadClients(pad, callback); }, //clean up temporary files - function(callback) - { + function(callback) { + //for node < 0.7 compatible + var fileExists = fs.exists || path.exists; async.parallel([ - function(callback) - { - fs.unlink(srcFile, callback); + function(callback){ + fileExists (srcFile, function(exist) { (exist)? fs.unlink(srcFile, callback): callback(); }); }, - function(callback) - { - fs.unlink(destFile, callback); + function(callback){ + fileExists (destFile, function(exist) { (exist)? fs.unlink(destFile, callback): callback(); }); } ], callback); } - ], function(err) - { + ], function(err) { + var status = "ok"; //check for known errors and replace the status diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js index 2bbb5eec..033bd5e3 100644 --- a/src/node/hooks/express.js +++ b/src/node/hooks/express.js @@ -66,8 +66,6 @@ exports.restartServer = function () { } else { - console.log( "SSL -- not enabled!" ); - var http = require('http'); server = http.createServer(app); } diff --git a/src/node/hooks/express/importexport.js b/src/node/hooks/express/importexport.js index 9e78f34d..9754ffa6 100644 --- a/src/node/hooks/express/importexport.js +++ b/src/node/hooks/express/importexport.js @@ -28,12 +28,6 @@ exports.expressCreateServer = function (hook_name, args, cb) { //handle import requests args.app.post('/p/:pad/import', function(req, res, next) { - //if abiword is disabled, skip handling this request - if(settings.abiword == null) { - next(); - return; - } - hasPadAccess(req, res, function() { importHandler.doImport(req, res, req.params.pad); }); diff --git a/src/node/hooks/express/webaccess.js b/src/node/hooks/express/webaccess.js index 41bf3880..50323ef6 100644 --- a/src/node/hooks/express/webaccess.js +++ b/src/node/hooks/express/webaccess.js @@ -15,8 +15,8 @@ exports.basicAuth = function (req, res, next) { } var authorize = function (cb) { - // Do not require auth for static paths...this could be a bit brittle - if (req.path.match(/^\/(static|javascripts|pluginfw)/)) return cb(true); + // Do not require auth for static paths and the API...this could be a bit brittle + if (req.path.match(/^\/(static|javascripts|pluginfw|api)/)) return cb(true); if (req.path.indexOf('/admin') != 0) { if (!settings.requireAuthentication) return cb(true); diff --git a/src/node/hooks/i18n.js b/src/node/hooks/i18n.js index 4d42de04..a45d46fe 100644 --- a/src/node/hooks/i18n.js +++ b/src/node/hooks/i18n.js @@ -1,4 +1,4 @@ -var languages = require('languages') +var languages = require('languages4translatewiki') , fs = require('fs') , path = require('path') , express = require('express') @@ -8,22 +8,23 @@ var localesPath = __dirname+"/../../locales"; // Serve English strings directly with /locales.ini var localeIndex = fs.readFileSync(localesPath+'/en.ini')+'\r\n'; -// add language base 'en' to availableLangs -exports.availableLangs = {en: languages.getLanguageInfo('en')} +exports.availableLangs = {'en': {'nativeName': 'English', 'direction': 'ltr'}}; fs.readdir(localesPath, function(er, files) { files.forEach(function(locale) { - locale = locale.split('.')[0] - if(locale.toLowerCase() == 'en') return; + var ext = path.extname(locale); + locale = path.basename(locale, ext).toLowerCase(); + if(locale == 'en' || ext != '.ini') return; // build locale index localeIndex += '['+locale+']\r\n@import url(locales/'+locale+'.ini)\r\n' - // add info language {name, nativeName, direction} to availableLangs + // add info language {nativeName, direction} to availableLangs exports.availableLangs[locale]=languages.getLanguageInfo(locale); }) }) + exports.expressCreateServer = function(n, args) { args.app.use('/locales', express.static(localesPath)); diff --git a/src/package.json b/src/package.json index 8f762077..d2b03a97 100644 --- a/src/package.json +++ b/src/package.json @@ -11,32 +11,32 @@ { "name": "Marcel Klehr" } ], "dependencies" : { - "yajsml" : "1.1.6", - "request" : "2.9.100", - "require-kernel" : "1.0.5", - "resolve" : "0.2.x", - "socket.io" : "0.9.x", - "ueberDB" : "0.1.8", - "async" : "0.1.x", - "express" : "3.x", - "connect" : "2.4.x", - "clean-css" : "0.3.2", - "uglify-js" : "1.2.5", - "formidable" : "1.0.9", - "log4js" : "0.5.x", - "jsdom-nocontextifiy" : "0.2.10", - "async-stacktrace" : "0.0.2", - "npm" : "1.1.x", - "npm-registry-client" : "0.2.10", - "ejs" : "0.6.1", - "graceful-fs" : "1.1.5", - "slide" : "1.1.3", - "semver" : "1.0.13", - "security" : "1.0.0", - "tinycon" : "0.0.1", - "underscore" : "1.3.1", - "unorm" : "1.0.0", - "languages" : "0.1.1" + "yajsml" : "1.1.6", + "request" : "2.9.100", + "require-kernel" : "1.0.5", + "resolve" : "0.2.x", + "socket.io" : "0.9.x", + "ueberDB" : "0.1.8", + "async" : "0.1.x", + "express" : "3.x", + "connect" : "2.4.x", + "clean-css" : "0.3.2", + "uglify-js" : "1.2.5", + "formidable" : "1.0.9", + "log4js" : "0.5.x", + "jsdom-nocontextifiy" : "0.2.10", + "async-stacktrace" : "0.0.2", + "npm" : "1.1.x", + "npm-registry-client" : "0.2.10", + "ejs" : "0.6.1", + "graceful-fs" : "1.1.5", + "slide" : "1.1.3", + "semver" : "1.0.13", + "security" : "1.0.0", + "tinycon" : "0.0.1", + "underscore" : "1.3.1", + "unorm" : "1.0.0", + "languages4translatewiki" : "0.1.3" }, "bin": { "etherpad-lite": "./node/server.js" }, "devDependencies": { diff --git a/src/static/css/pad.css b/src/static/css/pad.css index 64f9f0d4..bb8da99b 100644 --- a/src/static/css/pad.css +++ b/src/static/css/pad.css @@ -22,6 +22,7 @@ iframe { .readonly .acl-write { display: none; } + #users { background: #f7f7f7; background: -webkit-linear-gradient( #F7F7F7,#EEE); @@ -190,6 +191,19 @@ a img { height: 30px; z-index: 100; } + +#editorloadingbox .passForm{ + padding:10px; +} + +#editorloadingbox input{ + padding:10px; +} + +#editorloadingbox button{ + padding:10px; +} + #editorcontainerbox { position: absolute; bottom: 0; @@ -571,15 +585,20 @@ table#otheruserstable { #exportdokuwiki { background-position: 0px -459px } -#importstatusball { - display: none + +/* hidden element */ +#importstatusball, +#importarrow, +#importmessagesuccess, +#importmessageabiword { + display: none; } -#importarrow { - display: none -} -#importmessagesuccess { - display: none + +#importmessageabiword { + color: #900; + font-size: small; } + #importsubmitinput { height: 25px; width: 85px; @@ -755,7 +774,7 @@ input[type=checkbox] { border-radius: 3px; border: 1px solid #ccc; outline: none; - min-width: 105px; + width: 120px; } .column { float: left; @@ -878,3 +897,15 @@ input[type=checkbox] { line-height: 24px } } + +#passwordRequired{ + display:none; +} + +#permissionDenied{ + display:none; +} + +#wrongPassword{ + display:none; +} diff --git a/src/static/js/admin/plugins.js b/src/static/js/admin/plugins.js index 93acf6ea..61852028 100644 --- a/src/static/js/admin/plugins.js +++ b/src/static/js/admin/plugins.js @@ -113,10 +113,15 @@ $(document).ready(function () { for (plugin_name in data.results) { var plugin = data.results[plugin_name]; var row = widget.find(".template tr").clone(); + var version = '0.0.0'; + // hack to access "versions" property of the npm package object + for (version in data.results[plugin_name].versions) break; for (attr in plugin) { row.find("." + attr).html(plugin[attr]); } + row.find(".version").html(version); + widget.find(".results").append(row); } diff --git a/src/static/js/pad.js b/src/static/js/pad.js index 34f2a287..9ad701b3 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -51,18 +51,20 @@ var randomString = require('./pad_utils').randomString; var hooks = require('./pluginfw/hooks'); -function createCookie(name, value, days, path) -{ +function createCookie(name, value, days, path){ /* Warning Internet Explorer doesn't use this it uses the one from pad_utils.js */ if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } - else var expires = ""; + else{ + var expires = ""; + } - if(!path) + if(!path){ // If the path isn't set then just whack the cookie on the root path path = "/"; + } //Check if the browser is IE and if so make sure the full path is set in the cookie if(navigator.appName=='Microsoft Internet Explorer'){ @@ -202,6 +204,7 @@ function savePassword() createCookie("password",$("#passwordinput").val(),null,document.location.pathname); //reload document.location=document.location; + return false; } function handshake() @@ -298,21 +301,25 @@ function handshake() //the access was not granted, give the user a message if(!receivedClientVars && obj.accessStatus) { + $('.passForm').submit(require(module.id).savePassword); + if(obj.accessStatus == "deny") { - $("#editorloadingbox").html("You do not have permission to access this pad"); + $('#loading').hide(); + $("#permissionDenied").show(); } else if(obj.accessStatus == "needPassword") { - $("#editorloadingbox").html("You need a password to access this pad
" + - ""+ - ""); + $('#loading').hide(); + $('#passwordRequired').show(); + $("#passwordinput").focus(); } else if(obj.accessStatus == "wrongPassword") { - $("#editorloadingbox").html("Your password was wrong
" + - ""+ - ""); + $('#loading').hide(); + $('#wrongPassword').show(); + $('#passwordRequired').show(); + $("#passwordinput").focus(); } } diff --git a/src/static/js/pad_impexp.js b/src/static/js/pad_impexp.js index 08dd4293..4b4733a5 100644 --- a/src/static/js/pad_impexp.js +++ b/src/static/js/pad_impexp.js @@ -218,6 +218,9 @@ var padimpexp = (function() $("#exporthtmla").attr("href", pad_root_path + "/export/html"); $("#exportplaina").attr("href", pad_root_path + "/export/txt"); $("#exportdokuwikia").attr("href", pad_root_path + "/export/dokuwiki"); + + // activate action to import in the form + $("#importform").attr('action', pad_root_url + "/import"); //hide stuff thats not avaible if abiword is disabled if(clientVars.abiwordAvailable == "no") @@ -225,8 +228,8 @@ var padimpexp = (function() $("#exportworda").remove(); $("#exportpdfa").remove(); $("#exportopena").remove(); - $(".importformdiv").remove(); - $("#import").html("Import is not available. To enable import please install abiword"); + + $("#importmessageabiword").show(); } else if(clientVars.abiwordAvailable == "withoutPDF") { @@ -237,16 +240,12 @@ var padimpexp = (function() $("#importexport").css({"height":"142px"}); $("#importexportline").css({"height":"142px"}); - - $("#importform").attr('action', pad_root_url + "/import"); } else { $("#exportworda").attr("href", pad_root_path + "/export/doc"); $("#exportpdfa").attr("href", pad_root_path + "/export/pdf"); $("#exportopena").attr("href", pad_root_path + "/export/odt"); - - $("#importform").attr('action', pad_root_path + "/import"); } $("#impexp-close").click(function() diff --git a/src/static/js/pad_utils.js b/src/static/js/pad_utils.js index 83ee9aae..82f7fcad 100644 --- a/src/static/js/pad_utils.js +++ b/src/static/js/pad_utils.js @@ -39,20 +39,29 @@ function randomString(len) return randomstring; } -function createCookie(name, value, days, path) -{ +function createCookie(name, value, days, path){ /* Used by IE */ if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } - else var expires = ""; + else{ + var expires = ""; + } - if(!path) + if(!path){ // IF the Path of the cookie isn't set then just create it on root path = "/"; + } + + //Check if the browser is IE and if so make sure the full path is set in the cookie + if(navigator.appName=='Microsoft Internet Explorer'){ + document.cookie = name + "=" + value + expires + "; path=/"; /* Note this bodge fix for IE is temporary until auth is rewritten */ + } + else{ + document.cookie = name + "=" + value + expires + "; path=" + path; + } - document.cookie = name + "=" + value + expires + "; path=" + path; } function readCookie(name) diff --git a/src/static/js/pluginfw/installer.js b/src/static/js/pluginfw/installer.js index d668e549..e491f077 100644 --- a/src/static/js/pluginfw/installer.js +++ b/src/static/js/pluginfw/installer.js @@ -91,9 +91,12 @@ exports.search = function(query, cache, cb) { if (er) return cb(er); var res = {}; var i = 0; - for (key in data) { + for (key in data) { // for every plugin in the data from npm if ( key.indexOf(plugins.prefix) == 0 - && key.indexOf(query.pattern) != -1) { + && key.indexOf(query.pattern) != -1 + || key.indexOf(plugins.prefix) == 0 + && data[key].description.indexOf(query.pattern) != -1 + ) { // If the name contains ep_ and the search string is in the name or description i++; if (i > query.offset && i <= query.offset + query.limit) { diff --git a/src/templates/admin/plugins.html b/src/templates/admin/plugins.html index 3dad3bd0..394cf0e0 100644 --- a/src/templates/admin/plugins.html +++ b/src/templates/admin/plugins.html @@ -30,6 +30,7 @@ Name Description + Version @@ -37,6 +38,7 @@ + @@ -58,6 +60,7 @@ Name Description + Version @@ -65,6 +68,7 @@ + diff --git a/src/templates/index.html b/src/templates/index.html index 9fd33a26..961c6012 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -41,7 +41,7 @@ if(language) document.documentElement.lang = language[1]; })(document) - +