|
|
@ -4,14 +4,14 @@
|
|
|
|
* file (make a copy from /customize.dist/application_config.js)
|
|
|
|
* file (make a copy from /customize.dist/application_config.js)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
define(function() {
|
|
|
|
define(function() {
|
|
|
|
var config = {};
|
|
|
|
var AppConfig = {};
|
|
|
|
|
|
|
|
|
|
|
|
/* Select the buttons displayed on the main page to create new collaborative sessions.
|
|
|
|
/* Select the buttons displayed on the main page to create new collaborative sessions.
|
|
|
|
* Removing apps from the list will prevent users from accessing them. They will instead be
|
|
|
|
* Removing apps from the list will prevent users from accessing them. They will instead be
|
|
|
|
* redirected to the drive.
|
|
|
|
* redirected to the drive.
|
|
|
|
* You should never remove the drive from this list.
|
|
|
|
* You should never remove the drive from this list.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
config.availablePadTypes = ['drive', 'teams', 'pad', 'sheet', 'code', 'slide', 'poll', 'kanban', 'whiteboard',
|
|
|
|
AppConfig.availablePadTypes = ['drive', 'teams', 'pad', 'sheet', 'code', 'slide', 'poll', 'kanban', 'whiteboard',
|
|
|
|
/*'doc', 'presentation',*/ 'file', /*'todo',*/ 'contacts' /*, 'calendar' */];
|
|
|
|
/*'doc', 'presentation',*/ 'file', /*'todo',*/ 'contacts' /*, 'calendar' */];
|
|
|
|
/* The registered only types are apps restricted to registered users.
|
|
|
|
/* The registered only types are apps restricted to registered users.
|
|
|
|
* You should never remove apps from this list unless you know what you're doing. The apps
|
|
|
|
* You should never remove apps from this list unless you know what you're doing. The apps
|
|
|
@ -20,7 +20,7 @@ define(function() {
|
|
|
|
* users and these users will be redirected to the login page if they still try to access
|
|
|
|
* users and these users will be redirected to the login page if they still try to access
|
|
|
|
* the app
|
|
|
|
* the app
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
config.registeredOnlyTypes = ['file', 'contacts', 'notifications', 'support'];
|
|
|
|
AppConfig.registeredOnlyTypes = ['file', 'contacts', 'notifications', 'support'];
|
|
|
|
|
|
|
|
|
|
|
|
/* CryptPad is available is multiple languages, but only English and French are maintained
|
|
|
|
/* CryptPad is available is multiple languages, but only English and French are maintained
|
|
|
|
* by the developers. The other languages may be outdated, and any missing string for a langauge
|
|
|
|
* by the developers. The other languages may be outdated, and any missing string for a langauge
|
|
|
@ -30,37 +30,37 @@ define(function() {
|
|
|
|
* can be found at the top of the file `/customize.dist/messages.js`. The list should only
|
|
|
|
* can be found at the top of the file `/customize.dist/messages.js`. The list should only
|
|
|
|
* contain languages code ('en', 'fr', 'de', 'pt-br', etc.), not their full name.
|
|
|
|
* contain languages code ('en', 'fr', 'de', 'pt-br', etc.), not their full name.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
//config.availableLanguages = ['en', 'fr', 'de'];
|
|
|
|
//AppConfig.availableLanguages = ['en', 'fr', 'de'];
|
|
|
|
|
|
|
|
|
|
|
|
/* You can display a link to the imprint (legal notice) of your website in the static pages
|
|
|
|
/* You can display a link to the imprint (legal notice) of your website in the static pages
|
|
|
|
* footer. To do so, you can either set the following value to `true` and create an imprint.html page
|
|
|
|
* footer. To do so, you can either set the following value to `true` and create an imprint.html page
|
|
|
|
* in the `customize` directory. You can also set it to an absolute URL if your imprint page already exists.
|
|
|
|
* in the `customize` directory. You can also set it to an absolute URL if your imprint page already exists.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
config.imprint = false;
|
|
|
|
AppConfig.imprint = false;
|
|
|
|
// config.imprint = true;
|
|
|
|
// AppConfig.imprint = true;
|
|
|
|
// config.imprint = 'https://xwiki.com/en/company/legal-notice';
|
|
|
|
// AppConfig.imprint = 'https://xwiki.com/en/company/legal-notice';
|
|
|
|
|
|
|
|
|
|
|
|
/* You can display a link to your own privacy policy in the static pages footer.
|
|
|
|
/* You can display a link to your own privacy policy in the static pages footer.
|
|
|
|
* To do so, set the following value to the absolute URL of your privacy policy.
|
|
|
|
* To do so, set the following value to the absolute URL of your privacy policy.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
// config.privacy = 'https://xwiki.com/en/company/PrivacyPolicy';
|
|
|
|
// AppConfig.privacy = 'https://xwiki.com/en/company/PrivacyPolicy';
|
|
|
|
|
|
|
|
|
|
|
|
/* We (the project's developers) include the ability to display a 'Roadmap' in static pages footer.
|
|
|
|
/* We (the project's developers) include the ability to display a 'Roadmap' in static pages footer.
|
|
|
|
* This is disabled by default.
|
|
|
|
* This is disabled by default.
|
|
|
|
* We use this to publish the project's development roadmap, but you can use it however you like.
|
|
|
|
* We use this to publish the project's development roadmap, but you can use it however you like.
|
|
|
|
* To do so, set the following value to an absolute URL.
|
|
|
|
* To do so, set the following value to an absolute URL.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
//config.roadmap = 'https://cryptpad.fr/kanban/#/2/kanban/view/PLM0C3tFWvYhd+EPzXrbT+NxB76Z5DtZhAA5W5hG9wo/';
|
|
|
|
//AppConfig.roadmap = 'https://cryptpad.fr/kanban/#/2/kanban/view/PLM0C3tFWvYhd+EPzXrbT+NxB76Z5DtZhAA5W5hG9wo/';
|
|
|
|
|
|
|
|
|
|
|
|
/* Cryptpad apps use a common API to display notifications to users
|
|
|
|
/* Cryptpad apps use a common API to display notifications to users
|
|
|
|
* by default, notifications are hidden after 5 seconds
|
|
|
|
* by default, notifications are hidden after 5 seconds
|
|
|
|
* You can change their duration here (measured in milliseconds)
|
|
|
|
* You can change their duration here (measured in milliseconds)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
config.notificationTimeout = 5000;
|
|
|
|
AppConfig.notificationTimeout = 5000;
|
|
|
|
config.disableUserlistNotifications = false;
|
|
|
|
AppConfig.disableUserlistNotifications = false;
|
|
|
|
|
|
|
|
|
|
|
|
// Update the default colors available in the whiteboard application
|
|
|
|
// Update the default colors available in the whiteboard application
|
|
|
|
config.whiteboardPalette = [
|
|
|
|
AppConfig.whiteboardPalette = [
|
|
|
|
'#000000', // black
|
|
|
|
'#000000', // black
|
|
|
|
'#FFFFFF', // white
|
|
|
|
'#FFFFFF', // white
|
|
|
|
'#848484', // grey
|
|
|
|
'#848484', // grey
|
|
|
@ -82,14 +82,14 @@ define(function() {
|
|
|
|
// Background color in the apps with centered content:
|
|
|
|
// Background color in the apps with centered content:
|
|
|
|
// - file app in view mode
|
|
|
|
// - file app in view mode
|
|
|
|
// - rich text app when editor's width reduced in settings
|
|
|
|
// - rich text app when editor's width reduced in settings
|
|
|
|
config.appBackgroundColor = '#666';
|
|
|
|
AppConfig.appBackgroundColor = '#666';
|
|
|
|
|
|
|
|
|
|
|
|
// Set enableTemplates to false to remove the button allowing users to save a pad as a template
|
|
|
|
// Set enableTemplates to false to remove the button allowing users to save a pad as a template
|
|
|
|
// and remove the template category in CryptDrive
|
|
|
|
// and remove the template category in CryptDrive
|
|
|
|
config.enableTemplates = true;
|
|
|
|
AppConfig.enableTemplates = true;
|
|
|
|
|
|
|
|
|
|
|
|
// Set enableHistory to false to remove the "History" button in all the apps.
|
|
|
|
// Set enableHistory to false to remove the "History" button in all the apps.
|
|
|
|
config.enableHistory = true;
|
|
|
|
AppConfig.enableHistory = true;
|
|
|
|
|
|
|
|
|
|
|
|
/* user passwords are hashed with scrypt, and salted with their username.
|
|
|
|
/* user passwords are hashed with scrypt, and salted with their username.
|
|
|
|
this value will be appended to the username, causing the resulting hash
|
|
|
|
this value will be appended to the username, causing the resulting hash
|
|
|
@ -101,15 +101,15 @@ define(function() {
|
|
|
|
created. Changing it at a later time will break logins for all existing
|
|
|
|
created. Changing it at a later time will break logins for all existing
|
|
|
|
users.
|
|
|
|
users.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
config.loginSalt = '';
|
|
|
|
AppConfig.loginSalt = '';
|
|
|
|
config.minimumPasswordLength = 8;
|
|
|
|
AppConfig.minimumPasswordLength = 8;
|
|
|
|
|
|
|
|
|
|
|
|
// Amount of time (ms) before aborting the session when the algorithm cannot synchronize the pad
|
|
|
|
// Amount of time (ms) before aborting the session when the algorithm cannot synchronize the pad
|
|
|
|
config.badStateTimeout = 30000;
|
|
|
|
AppConfig.badStateTimeout = 30000;
|
|
|
|
|
|
|
|
|
|
|
|
// Customize the icon used for each application.
|
|
|
|
// Customize the icon used for each application.
|
|
|
|
// You can update the colors by making a copy of /customize.dist/src/less2/include/colortheme.less
|
|
|
|
// You can update the colors by making a copy of /customize.dist/src/less2/include/colortheme.less
|
|
|
|
config.applicationsIcon = {
|
|
|
|
AppConfig.applicationsIcon = {
|
|
|
|
file: 'cptools-file',
|
|
|
|
file: 'cptools-file',
|
|
|
|
fileupload: 'cptools-file-upload',
|
|
|
|
fileupload: 'cptools-file-upload',
|
|
|
|
folderupload: 'cptools-folder-upload',
|
|
|
|
folderupload: 'cptools-folder-upload',
|
|
|
@ -130,50 +130,49 @@ define(function() {
|
|
|
|
|
|
|
|
|
|
|
|
// Ability to create owned pads and expiring pads through a new pad creation screen.
|
|
|
|
// Ability to create owned pads and expiring pads through a new pad creation screen.
|
|
|
|
// The new screen can be disabled by the users in their settings page
|
|
|
|
// The new screen can be disabled by the users in their settings page
|
|
|
|
config.displayCreationScreen = true;
|
|
|
|
AppConfig.displayCreationScreen = true;
|
|
|
|
|
|
|
|
|
|
|
|
// Prevent anonymous users from storing pads in their drive
|
|
|
|
// Prevent anonymous users from storing pads in their drive
|
|
|
|
config.disableAnonymousStore = false;
|
|
|
|
// NOTE: this is only enforced client-side as the server does not distinguish between users drives and pads
|
|
|
|
|
|
|
|
AppConfig.disableAnonymousStore = false;
|
|
|
|
|
|
|
|
// Prevent anonymous users from creating new pads (they can still access and edit existing ones)
|
|
|
|
|
|
|
|
// NOTE: this is only enforced client-side and will not prevent malicious clients from storing data
|
|
|
|
|
|
|
|
AppConfig.disableAnonymousPadCreation = false;
|
|
|
|
|
|
|
|
|
|
|
|
// Hide the usage bar in settings and drive
|
|
|
|
// Hide the usage bar in settings and drive
|
|
|
|
//config.hideUsageBar = true;
|
|
|
|
//AppConfig.hideUsageBar = true;
|
|
|
|
|
|
|
|
|
|
|
|
// Disable feedback for all the users and hide the settings part about feedback
|
|
|
|
// Disable feedback for all the users and hide the settings part about feedback
|
|
|
|
//config.disableFeedback = true;
|
|
|
|
//AppConfig.disableFeedback = true;
|
|
|
|
|
|
|
|
|
|
|
|
// Add new options in the share modal (extend an existing tab or add a new tab).
|
|
|
|
|
|
|
|
// More info about how to use it on the wiki:
|
|
|
|
|
|
|
|
// https://github.com/xwiki-labs/cryptpad/wiki/Application-config#configcustomizeshareoptions
|
|
|
|
|
|
|
|
//config.customizeShareOptions = function (hashes, tabs, config) {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Add code to be executed on every page before loading the user object. `isLoggedIn` (bool) is
|
|
|
|
// Add code to be executed on every page before loading the user object. `isLoggedIn` (bool) is
|
|
|
|
// indicating if the user is registered or anonymous. Here you can change the way anonymous users
|
|
|
|
// indicating if the user is registered or anonymous. Here you can change the way anonymous users
|
|
|
|
// work in CryptPad, use an external SSO or even force registration
|
|
|
|
// work in CryptPad, use an external SSO or even force registration
|
|
|
|
// *NOTE*: You have to call the `callback` function to continue the loading process
|
|
|
|
// *NOTE*: You have to call the `callback` function to continue the loading process
|
|
|
|
//config.beforeLogin = function(isLoggedIn, callback) {};
|
|
|
|
//AppConfig.beforeLogin = function(isLoggedIn, callback) {};
|
|
|
|
|
|
|
|
|
|
|
|
// Add code to be executed on every page after the user object is loaded (also work for
|
|
|
|
// Add code to be executed on every page after the user object is loaded (also work for
|
|
|
|
// unregistered users). This allows you to interact with your users' drive
|
|
|
|
// unregistered users). This allows you to interact with your users' drive
|
|
|
|
// *NOTE*: You have to call the `callback` function to continue the loading process
|
|
|
|
// *NOTE*: You have to call the `callback` function to continue the loading process
|
|
|
|
//config.afterLogin = function(api, callback) {};
|
|
|
|
//AppConfig.afterLogin = function(api, callback) {};
|
|
|
|
|
|
|
|
|
|
|
|
// Disabling the profile app allows you to import the profile informations (display name, avatar)
|
|
|
|
// Disabling the profile app allows you to import the profile informations (display name, avatar)
|
|
|
|
// from an external source and make sure the users can't change them from CryptPad.
|
|
|
|
// from an external source and make sure the users can't change them from CryptPad.
|
|
|
|
// You can use config.afterLogin to import these values in the users' drive.
|
|
|
|
// You can use AppConfig.afterLogin to import these values in the users' drive.
|
|
|
|
//config.disableProfile = true;
|
|
|
|
//AppConfig.disableProfile = true;
|
|
|
|
|
|
|
|
|
|
|
|
// Disable the use of webworkers and sharedworkers in CryptPad.
|
|
|
|
// Disable the use of webworkers and sharedworkers in CryptPad.
|
|
|
|
// Workers allow us to run the websockets connection and open the user drive in a separate thread.
|
|
|
|
// Workers allow us to run the websockets connection and open the user drive in a separate thread.
|
|
|
|
// SharedWorkers allow us to load only one websocket and one user drive for all the browser tabs,
|
|
|
|
// SharedWorkers allow us to load only one websocket and one user drive for all the browser tabs,
|
|
|
|
// making it much faster to open new tabs.
|
|
|
|
// making it much faster to open new tabs.
|
|
|
|
config.disableWorkers = false;
|
|
|
|
AppConfig.disableWorkers = false;
|
|
|
|
|
|
|
|
|
|
|
|
// Teams are always loaded during the initial loading screen (for the first tab only if
|
|
|
|
// Teams are always loaded during the initial loading screen (for the first tab only if
|
|
|
|
// SharedWorkers are available). Allowing users to be members of multiple teams can
|
|
|
|
// SharedWorkers are available). Allowing users to be members of multiple teams can
|
|
|
|
// make them have a very slow loading time. To avoid impacting the user experience
|
|
|
|
// make them have a very slow loading time. To avoid impacting the user experience
|
|
|
|
// significantly, we're limiting the number of teams per user to 3 by default.
|
|
|
|
// significantly, we're limiting the number of teams per user to 3 by default.
|
|
|
|
// You can change this value here.
|
|
|
|
// You can change this value here.
|
|
|
|
//config.maxTeamsSlots = 5;
|
|
|
|
//AppConfig.maxTeamsSlots = 5;
|
|
|
|
|
|
|
|
|
|
|
|
// Each team is considered as a registered user by the server. Users and teams are indistinguishable
|
|
|
|
// Each team is considered as a registered user by the server. Users and teams are indistinguishable
|
|
|
|
// in the database so teams will offer the same storage limits as users by default.
|
|
|
|
// in the database so teams will offer the same storage limits as users by default.
|
|
|
@ -181,7 +180,7 @@ define(function() {
|
|
|
|
// We're limiting the number of teams each user is able to own to 1 in order to make sure
|
|
|
|
// We're limiting the number of teams each user is able to own to 1 in order to make sure
|
|
|
|
// users don't use "fake" teams (1 member) just to increase their storage limit.
|
|
|
|
// users don't use "fake" teams (1 member) just to increase their storage limit.
|
|
|
|
// You can change the value here.
|
|
|
|
// You can change the value here.
|
|
|
|
// config.maxOwnedTeams = 5;
|
|
|
|
// AppConfig.maxOwnedTeams = 5;
|
|
|
|
|
|
|
|
|
|
|
|
// The userlist displayed in collaborative documents is stored alongside the document data.
|
|
|
|
// The userlist displayed in collaborative documents is stored alongside the document data.
|
|
|
|
// Everytime someone with edit rights joins a document or modify their user data (display
|
|
|
|
// Everytime someone with edit rights joins a document or modify their user data (display
|
|
|
@ -192,14 +191,14 @@ define(function() {
|
|
|
|
// position of other users' cursor. You can configure the number of user from which the session
|
|
|
|
// position of other users' cursor. You can configure the number of user from which the session
|
|
|
|
// will enter into degraded mode. A big number may result in collaborative edition being broken,
|
|
|
|
// will enter into degraded mode. A big number may result in collaborative edition being broken,
|
|
|
|
// but this number depends on the network and CPU performances of each user's device.
|
|
|
|
// but this number depends on the network and CPU performances of each user's device.
|
|
|
|
config.degradedLimit = 8;
|
|
|
|
AppConfig.degradedLimit = 8;
|
|
|
|
|
|
|
|
|
|
|
|
// In "legacy" mode, one-time users were always creating an "anonymous" drive when visiting CryptPad
|
|
|
|
// In "legacy" mode, one-time users were always creating an "anonymous" drive when visiting CryptPad
|
|
|
|
// in which they could store their pads. The new "driveless" mode allow users to open an existing
|
|
|
|
// in which they could store their pads. The new "driveless" mode allow users to open an existing
|
|
|
|
// pad without creating a drive in the background. The drive will only be created if they visit
|
|
|
|
// pad without creating a drive in the background. The drive will only be created if they visit
|
|
|
|
// a different page (Drive, Settings, etc.) or try to create a new pad themselves. You can disable
|
|
|
|
// a different page (Drive, Settings, etc.) or try to create a new pad themselves. You can disable
|
|
|
|
// the driveless mode by changing the following value to "false"
|
|
|
|
// the driveless mode by changing the following value to "false"
|
|
|
|
config.allowDrivelessMode = true;
|
|
|
|
AppConfig.allowDrivelessMode = true;
|
|
|
|
|
|
|
|
|
|
|
|
return config;
|
|
|
|
return AppConfig;
|
|
|
|
});
|
|
|
|
});
|
|
|
|