diff --git a/config.example.js b/config.example.js index a075b7bb2..fd7b45f96 100644 --- a/config.example.js +++ b/config.example.js @@ -123,7 +123,8 @@ module.exports = { 'terms', 'about', 'contact', - 'what-is-cryptpad' + 'what-is-cryptpad', + 'features' ], /* Limits, Donations, Subscriptions and Contact diff --git a/customize.dist/features.html b/customize.dist/features.html new file mode 100644 index 000000000..31d4c99f8 --- /dev/null +++ b/customize.dist/features.html @@ -0,0 +1,16 @@ + + + + + CryptPad: Zero Knowledge, Collaborative Real Time Editing + + + + + + + + diff --git a/customize.dist/index.html b/customize.dist/index.html index 55891ecc4..31d4c99f8 100644 --- a/customize.dist/index.html +++ b/customize.dist/index.html @@ -4,7 +4,6 @@ CryptPad: Zero Knowledge, Collaborative Real Time Editing - diff --git a/customize.dist/pages.js b/customize.dist/pages.js index b44940116..40ea81467 100644 --- a/customize.dist/pages.js +++ b/customize.dist/pages.js @@ -228,6 +228,116 @@ define([ ]); }; + Pages['/features.html'] = function () { + return h('div#cp-main', [ + infopageTopbar(), + h('div.container.cp-container', [ + h('center', h('h1', Msg.features_title)), + h('table#cp-features-table', [ + h('thead', h('tr', [ + h('th', Msg.features_feature), + h('th', Msg.features_anon), + h('th', Msg.features_registered), + h('th', Msg.features_notes) + ])), + h('tbody', [ + h('tr', [ + h('td', Msg.features_f_pad), + h('td.yes', '✔'),// u2714, u2715 + h('td.yes', '✔'), + h('td', Msg.features_f_pad_notes) + ]), + h('tr', [ + h('td', Msg.features_f_history), + h('td.yes', '✔'), + h('td.yes', '✔'), + h('td', Msg.features_f_history_notes) + ]), + h('tr', [ + h('td', Msg.features_f_export), + h('td.yes', '✔'), + h('td.yes', '✔'), + h('td', Msg.features_f_export_notes) + ]), + h('tr', [ + h('td', Msg.features_f_todo), + h('td.yes', '✔'), + h('td.yes', '✔'), + h('td') + ]), + h('tr', [ + h('td', Msg.features_f_viewFiles), + h('td.yes', '✔'), + h('td.yes', '✔'), + h('td') + ]), + h('tr', [ + h('td', Msg.features_f_drive), + h('td.part', '~'), + h('td.yes', '✔'), + h('td', Msg.features_f_drive_notes) + ]), + h('tr', [ + h('td', Msg.features_f_uploadFiles), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td') + ]), + h('tr', [ + h('td', Msg.features_f_embedFiles), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td') + ]), + h('tr', [ + h('td', Msg.features_f_multiple), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_multiple_notes) + ]), + h('tr', [ + h('td', Msg.features_f_logoutEverywhere), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_logoutEverywhere_notes || '') + ]), + h('tr', [ + h('td', Msg.features_f_templates), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_templates_notes) + ]), + h('tr', [ + h('td', Msg.features_f_profile), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_profile_notes) + ]), + h('tr', [ + h('td', Msg.features_f_tags), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_tags_notes) + ]), + h('tr', [ + h('td', Msg.features_f_contacts), + h('td.no', '✕'), + h('td.yes', '✔'), + h('td', Msg.features_f_contacts_notes) + ]), + h('tr', [ + h('td', Msg.features_f_storage), + h('td.no', Msg.features_f_storage_anon), + setHTML(h('td.yes.left'), Msg.features_f_storage_registered), + h('td') + ]), + ]) + ]) + ]), + infopageFooter() + ]); + }; + Pages['/privacy.html'] = function () { return h('div#cp-main', [ infopageTopbar(), diff --git a/customize.dist/src/less2/main.less b/customize.dist/src/less2/main.less index a2e0e89bd..c1bb5bba4 100644 --- a/customize.dist/src/less2/main.less +++ b/customize.dist/src/less2/main.less @@ -9,6 +9,7 @@ body.cp-page-register { @import "./pages/page-register.less"; } body.cp-page-what-is-cryptpad { @import "./pages/page-what-is-cryptpad.less"; } body.cp-page-about { @import "./pages/page-about.less"; } body.cp-page-privacy { @import "./pages/page-privacy.less"; } +body.cp-page-features { @import "./pages/page-features.less"; } body.cp-page-terms { @import "./pages/page-terms.less"; } // Set the HTML style for the apps which shouldn't have a body scrollbar diff --git a/customize.dist/src/less2/pages/page-features.less b/customize.dist/src/less2/pages/page-features.less new file mode 100644 index 000000000..cc44bc89d --- /dev/null +++ b/customize.dist/src/less2/pages/page-features.less @@ -0,0 +1,52 @@ +@import (once) "../include/infopages.less"; +@import (once) "../include/colortheme-all.less"; + +.infopages_main(); +.infopages_topbar(); + +@features_th-bg: #555; +@features_th-fg: #fff; +@features_tr-bg-alt: #ddd; +@features_notes: #333; +@features_yes: #c4ffca; +@features_no: #ffc4bc; +@features_part: #faffd3; + +table#cp-features-table { + width: 100%; + th { + background-color: @features_th-bg; + color: @features_th-fg; + padding: 10px; + border: 1px solid @features_th-bg; + } + tbody { + td { + height: 32px; + line-height: 32px; + padding: 5px; + border: 1px solid @features_th-bg; + } + tr:nth-child(odd) { + background-color: @features_tr-bg-alt; + } + } + td:nth-child(4) { + color: @features_notes; + font-size: 14px; + font-style: italic; + } + td:first-child { + font-weight: bold; + } + .yes, .no, .part { + text-align: center; + } + .yes { background-color: @features_yes; } + .no { background-color: @features_no; } + .part { background-color: @features_part; } + .left { + text-align: left; + } +} + diff --git a/customize.dist/translations/messages.fr.js b/customize.dist/translations/messages.fr.js index 6a28b43ae..f28fdbbd9 100644 --- a/customize.dist/translations/messages.fr.js +++ b/customize.dist/translations/messages.fr.js @@ -704,6 +704,42 @@ define(function () { out.policy_choices_vpn = 'Si vous souhaitez utiliser notre instance hébergée (cryptpad.fr) mais que vous ne souhaitez pas exposer votre adresse IP, vous pouvez la protéger en utilisant le navigateur Tor, ou un VPN.'; out.policy_choices_ads = 'Si vous souhaitez uniquement bloquer notre plateforme d\'analytique, vous pouvez utiliser un bloqueur de publicités tel que Privacy Badger.'; + // features.html + + out.features_title = "Tableau des fonctionnalités"; + out.features_feature = "Fonctionnalité"; + out.features_anon = "Utilisateur anonyme"; + out.features_registered = "Utilisateur enregistré"; + out.features_notes = "Notes"; + out.features_f_pad = "Créer/modifier/voir un pad"; + out.features_f_pad_notes = "Texte, Code, Présentation, Sondage et Tableau blanc"; + out.features_f_history = "Historique"; + out.features_f_history_notes = "Voir et restaurer n'importe quelle version d'un pad"; + out.features_f_todo = "Créer une TODO-list"; + out.features_f_drive = "CryptDrive"; + out.features_f_drive_notes = "Fonctionnalités basiques pour les utilisateurs anonymes"; + out.features_f_export = "Export/Import"; + out.features_f_export_notes = "Pour les pads et CryptDrive"; + out.features_f_viewFiles = "Voir des fichiers"; + out.features_f_uploadFiles = "Importer des fichiers"; + out.features_f_embedFiles = "Intégrer des fichiers"; + out.features_f_embedFiles_notes = "Intégrer un fichier de CryptDrive dans un pad"; + out.features_f_multiple = "Appareils multiples"; + out.features_f_multiple_notes = "Moyen facile de voir vos pads depuis n'importe quel appareil"; + out.features_f_logoutEverywhere = "Se déconnecter partout"; + out.features_f_logoutEverywhere_notes = "Se déconnecter des autres appareils utilisés"; + out.features_f_templates = "Modèles"; + out.features_f_templates_notes = "Créer des modèles et créer des pads basés sur ces modèles"; + out.features_f_profile = "Créer un profil"; + out.features_f_profile_notes = "Page personnelle contenant un avatar et une description"; + out.features_f_tags = "Utiliser les tags"; + out.features_f_tags_notes = "Permet la recherche de documents par tags dans CryptDrive"; + out.features_f_contacts = "Application Contacts"; + out.features_f_contacts_notes = "Ajouter des contacts et discuter avec eux de manière sécurisée"; + out.features_f_storage = "Stockage"; + out.features_f_storage_anon = "Pads supprimés après 3 mois"; + out.features_f_storage_registered = "Gratuit: 50Mo
Premium: 5Go/20Go/50Go"; + // terms.html out.tos_title = "Conditions d'utilisation de CryptPad"; diff --git a/customize.dist/translations/messages.js b/customize.dist/translations/messages.js index cd58bc9fb..ffe96f79a 100644 --- a/customize.dist/translations/messages.js +++ b/customize.dist/translations/messages.js @@ -714,6 +714,41 @@ define(function () { out.policy_choices_vpn = 'If you want to use our hosted instance, but don\'t want to expose your IP address, you can protect your IP using the Tor browser bundle, or a VPN.'; out.policy_choices_ads = 'If you just want to block our analytics platform, you can use adblocking tools like Privacy Badger.'; + // features.html + + out.features_title = "Features table"; + out.features_feature = "Feature"; + out.features_anon = "Anonymous user"; + out.features_registered = "Registered user"; + out.features_notes = "Notes"; + out.features_f_pad = "Create/edit/view a pad"; + out.features_f_pad_notes = "Rich Text, Code, Slide, Poll and Whiteboard applications"; + out.features_f_history = "History"; + out.features_f_history_notes = "View and restore any version of your pads"; + out.features_f_todo = "Create a TODO-list"; + out.features_f_drive = "CryptDrive"; + out.features_f_drive_notes = "Basic features for anonymous users"; + out.features_f_export = "Export/Import"; + out.features_f_export_notes = "For pads and CryptDrive"; + out.features_f_viewFiles = "View files"; + out.features_f_uploadFiles = "Upload files"; + out.features_f_embedFiles = "Embed files"; + out.features_f_embedFiles_notes = "Embed a file stored in CryptDrive in a pad"; + out.features_f_multiple = "Use on multiple devices"; + out.features_f_multiple_notes = "Easy way to access your pads from any device"; + out.features_f_logoutEverywhere = "Log out from other devices"; + out.features_f_templates = "Use templates"; + out.features_f_templates_notes = "Create templates and create new pads from your templates"; + out.features_f_profile = "Create a profile"; + out.features_f_profile_notes = "Personal page including an avatar and a description"; + out.features_f_tags = "Use tags"; + out.features_f_tags_notes = "Allow users to search by tags in CryptDrive"; + out.features_f_contacts = "Contacts application"; + out.features_f_contacts_notes = "Add contacts and chat with them in an encrypted session"; + out.features_f_storage = "Storage"; + out.features_f_storage_anon = "Pads deleted after 3 months"; + out.features_f_storage_registered = "Free: 50MB
Premium: 5GB/20GB/50GB"; + // terms.html out.tos_title = "CryptPad Terms of Service"; diff --git a/package.json b/package.json index dd03426ce..b9cac6c82 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,6 @@ "lint:less": "./node_modules/lesshint/bin/lesshint -c ./.lesshintrc ./customize.dist/src/less2/", "flow": "./node_modules/.bin/flow", "test": "node TestSelenium.js", - "template": "cd customize.dist/src && for page in ../index.html ../privacy.html ../terms.html ../about.html ../contact.html ../what-is-cryptpad.html ../../www/login/index.html ../../www/register/index.html ../../www/settings/index.html ../../www/user/index.html;do echo $page; cp template.html $page; done;" + "template": "cd customize.dist/src && for page in ../index.html ../privacy.html ../terms.html ../about.html ../contact.html ../what-is-cryptpad.html ../features.html ../../www/login/index.html ../../www/register/index.html ../../www/user/index.html;do echo $page; cp template.html $page; done;" } }