mirror of https://github.com/xwiki-labs/cryptpad
add a setting to preserve redirect-to-drive behaviour from the home page
disable it by default
This commit is contained in:
parent
1fe57c7e03
commit
3fbb771b9c
|
@ -12,7 +12,7 @@ define([
|
||||||
// Make sure we don't display non-translated content (empty button)
|
// Make sure we don't display non-translated content (empty button)
|
||||||
$main.find('#data').removeClass('hidden');
|
$main.find('#data').removeClass('hidden');
|
||||||
|
|
||||||
if (LocalStore.isLoggedIn()) {
|
if (LocalStore.isLoggedIn() && LocalStore.getDriveRedirectPreference()) {
|
||||||
if (window.location.pathname === '/') {
|
if (window.location.pathname === '/') {
|
||||||
window.location = '/drive/';
|
window.location = '/drive/';
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -10,6 +10,7 @@ define(['/customize/application_config.js'], function (AppConfig) {
|
||||||
oldStorageKey: 'CryptPad_RECENTPADS',
|
oldStorageKey: 'CryptPad_RECENTPADS',
|
||||||
storageKey: 'filesData',
|
storageKey: 'filesData',
|
||||||
tokenKey: 'loginToken',
|
tokenKey: 'loginToken',
|
||||||
|
prefersDriveRedirectKey: 'prefersDriveRedirect',
|
||||||
displayPadCreationScreen: 'displayPadCreationScreen',
|
displayPadCreationScreen: 'displayPadCreationScreen',
|
||||||
deprecatedKey: 'deprecated',
|
deprecatedKey: 'deprecated',
|
||||||
MAX_TEAMS_SLOTS: AppConfig.maxTeamsSlots || 5,
|
MAX_TEAMS_SLOTS: AppConfig.maxTeamsSlots || 5,
|
||||||
|
|
|
@ -1103,6 +1103,11 @@ define([
|
||||||
postMessage('BURN_PAD', data);
|
postMessage('BURN_PAD', data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
common.setDriveRedirectPreference = function (data, cb) {
|
||||||
|
LocalStore.setDriveRedirectPreference(data && data.value);
|
||||||
|
cb();
|
||||||
|
};
|
||||||
|
|
||||||
common.changePadPassword = function (Crypt, Crypto, data, cb) {
|
common.changePadPassword = function (Crypt, Crypto, data, cb) {
|
||||||
var href = data.href;
|
var href = data.href;
|
||||||
var oldPassword = data.oldPassword;
|
var oldPassword = data.oldPassword;
|
||||||
|
@ -2506,6 +2511,11 @@ define([
|
||||||
}
|
}
|
||||||
if (data.anonHash && !cfg.userHash) { LocalStore.setFSHash(data.anonHash); }
|
if (data.anonHash && !cfg.userHash) { LocalStore.setFSHash(data.anonHash); }
|
||||||
|
|
||||||
|
var prefersDriveRedirect = data[Constants.prefersDriveRedirectKey];
|
||||||
|
if (typeof(prefersDriveRedirect) === 'boolean') {
|
||||||
|
LocalStore.setDriveRedirectPreference(prefersDriveRedirect);
|
||||||
|
}
|
||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
channelIsReady();
|
channelIsReady();
|
||||||
});
|
});
|
||||||
|
|
|
@ -3167,6 +3167,10 @@ define([
|
||||||
initialized = false;
|
initialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var redirect = Constants.prefersDriveRedirectKey;
|
||||||
|
var redirectPreference = Util.find(store, [ 'proxy', 'settings', 'general', redirect, ]);
|
||||||
|
ret[redirect] = redirectPreference;
|
||||||
|
|
||||||
callback(ret);
|
callback(ret);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,16 @@ define([
|
||||||
return window.CP_logged_in || typeof getUserHash() === "string";
|
return window.CP_logged_in || typeof getUserHash() === "string";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
LocalStore.getDriveRedirectPreference = function () {
|
||||||
|
try {
|
||||||
|
return JSON.parse(localStorage[Constants.redirectToDriveKey]);
|
||||||
|
} catch (err) { return; }
|
||||||
|
};
|
||||||
|
|
||||||
|
LocalStore.setDriveRedirectPreference = function (bool) {
|
||||||
|
localStorage.setItem(Constants.redirectToDriveKey, Boolean(bool));
|
||||||
|
};
|
||||||
|
|
||||||
LocalStore.login = function (hash, name, cb) {
|
LocalStore.login = function (hash, name, cb) {
|
||||||
if (!hash) { throw new Error('expected a user hash'); }
|
if (!hash) { throw new Error('expected a user hash'); }
|
||||||
if (!name) { throw new Error('expected a user name'); }
|
if (!name) { throw new Error('expected a user name'); }
|
||||||
|
|
|
@ -615,6 +615,7 @@ define([
|
||||||
newTemplate: Array.isArray(Cryptpad.initialPath)
|
newTemplate: Array.isArray(Cryptpad.initialPath)
|
||||||
&& Cryptpad.initialPath[0] === "template",
|
&& Cryptpad.initialPath[0] === "template",
|
||||||
feedbackAllowed: Utils.Feedback.state,
|
feedbackAllowed: Utils.Feedback.state,
|
||||||
|
prefersDriveRedirect: Utils.LocalStore.getDriveRedirectPreference(),
|
||||||
isPresent: parsed.hashData && parsed.hashData.present,
|
isPresent: parsed.hashData && parsed.hashData.present,
|
||||||
isEmbed: parsed.hashData && parsed.hashData.embed,
|
isEmbed: parsed.hashData && parsed.hashData.embed,
|
||||||
oldVersionHash: parsed.hashData && parsed.hashData.version < 2, // password
|
oldVersionHash: parsed.hashData && parsed.hashData.version < 2, // password
|
||||||
|
|
|
@ -14,6 +14,7 @@ define([
|
||||||
'/api/config',
|
'/api/config',
|
||||||
'/common/make-backup.js',
|
'/common/make-backup.js',
|
||||||
'/common/common-feedback.js',
|
'/common/common-feedback.js',
|
||||||
|
'/common/common-constants.js',
|
||||||
|
|
||||||
'/common/jscolor.js',
|
'/common/jscolor.js',
|
||||||
'/bower_components/file-saver/FileSaver.min.js',
|
'/bower_components/file-saver/FileSaver.min.js',
|
||||||
|
@ -35,7 +36,8 @@ define([
|
||||||
AppConfig,
|
AppConfig,
|
||||||
ApiConfig,
|
ApiConfig,
|
||||||
Backup,
|
Backup,
|
||||||
Feedback
|
Feedback,
|
||||||
|
Constants
|
||||||
) {
|
) {
|
||||||
var saveAs = window.saveAs;
|
var saveAs = window.saveAs;
|
||||||
var APP = window.APP = {};
|
var APP = window.APP = {};
|
||||||
|
@ -72,7 +74,8 @@ define([
|
||||||
'cp-settings-thumbnails',
|
'cp-settings-thumbnails',
|
||||||
'cp-settings-drive-backup',
|
'cp-settings-drive-backup',
|
||||||
'cp-settings-drive-import-local',
|
'cp-settings-drive-import-local',
|
||||||
'cp-settings-trim-history'
|
'cp-settings-trim-history',
|
||||||
|
'cp-settings-redirect',
|
||||||
//'cp-settings-drive-reset'
|
//'cp-settings-drive-reset'
|
||||||
],
|
],
|
||||||
'cursor': [ // Msg.settings_cat_cursor
|
'cursor': [ // Msg.settings_cat_cursor
|
||||||
|
@ -841,6 +844,49 @@ define([
|
||||||
return $div;
|
return $div;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Messages.settings_driveRedirectTitle = "DRIVE REDIRECT TITLE"; // XXX redirect
|
||||||
|
Messages.settings_driveRedirectHint = "DRIVE REDIRECT HINT"; // XXX redirect
|
||||||
|
Messages.settings_driveRedirect = "DRIVE REDIRECT"; // XXX redirect
|
||||||
|
|
||||||
|
create['redirect'] = function () {
|
||||||
|
if (!common.isLoggedIn()) { return; }
|
||||||
|
var $div = $('<div>', { 'class': 'cp-settings-redirect cp-sidebarlayout-element' });
|
||||||
|
|
||||||
|
$('<span>', { 'class': 'label' }).text(Messages.settings_driveRedirectTitle).appendTo($div);
|
||||||
|
|
||||||
|
$('<span>', { 'class': 'cp-sidebarlayout-description' })
|
||||||
|
.append(Messages.settings_driveRedirectHint)
|
||||||
|
.appendTo($div);
|
||||||
|
|
||||||
|
var $ok = $('<span>', { 'class': 'fa fa-check', title: Messages.saved });
|
||||||
|
var $spinner = $('<span>', { 'class': 'fa fa-spinner fa-pulse' });
|
||||||
|
|
||||||
|
var $cbox = $(UI.createCheckbox('cp-settings-redirect',
|
||||||
|
Messages.settings_driveRedirect,
|
||||||
|
false, { label: { class: 'noTitle' } }));
|
||||||
|
var $checkbox = $cbox.find('input').on('change', function() {
|
||||||
|
$spinner.show();
|
||||||
|
$ok.hide();
|
||||||
|
var val = $checkbox.is(':checked') || false;
|
||||||
|
common.setAttribute(['general', Constants.prefersDriveRedirectKey, val, function() {
|
||||||
|
$spinner.hide();
|
||||||
|
$ok.show();
|
||||||
|
sframeChan.query("Q_SET_DRIVE_REDIRECT_PREFERENCE", {
|
||||||
|
value: val,
|
||||||
|
}, console.log);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$cbox.appendTo($div);
|
||||||
|
|
||||||
|
$ok.hide().appendTo($cbox);
|
||||||
|
$spinner.hide().appendTo($cbox);
|
||||||
|
|
||||||
|
if (privateData.prefersDriveRedirect === true) {
|
||||||
|
$checkbox[0].checked = true;
|
||||||
|
}
|
||||||
|
return $div;
|
||||||
|
};
|
||||||
|
|
||||||
create['resettips'] = function() {
|
create['resettips'] = function() {
|
||||||
var $div = $('<div>', { 'class': 'cp-settings-resettips cp-sidebarlayout-element' });
|
var $div = $('<div>', { 'class': 'cp-settings-resettips cp-sidebarlayout-element' });
|
||||||
|
|
|
@ -78,6 +78,9 @@ define([
|
||||||
}
|
}
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
|
sframeChan.on('Q_SET_DRIVE_REDIRECT_PREFERENCE', function (data, cb) {
|
||||||
|
Cryptpad.setDriveRedirectPreference(data, cb);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
var category;
|
var category;
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
|
|
Loading…
Reference in New Issue