Fix buttons in admin panel staying disabled
This commit is contained in:
parent
26c65c8024
commit
d4d9ff9ac0
2 changed files with 44 additions and 34 deletions
|
@ -175,7 +175,7 @@ define([
|
|||
|
||||
|
||||
|
||||
blocks.activeButton = function (type, icon, text, callback) {
|
||||
blocks.activeButton = function (type, icon, text, callback, keepEnabled) {
|
||||
var button = blocks.button(type, icon, text);
|
||||
var $button = $(button);
|
||||
button.spinner = h('span');
|
||||
|
@ -183,12 +183,15 @@ define([
|
|||
|
||||
Util.onClickEnter($button, function () {
|
||||
spinner.spin();
|
||||
$button.attr('disabled', 'disabled');
|
||||
callback(function (success) {
|
||||
if (!keepEnabled) { $button.attr('disabled', 'disabled'); }
|
||||
let done = success => {
|
||||
$button.removeAttr('disabled');
|
||||
if (success) { return void spinner.done(); }
|
||||
spinner.hide();
|
||||
});
|
||||
};
|
||||
// The callback can be synchrnous or async, handle "done" in both ways
|
||||
let success = callback(done); // Async
|
||||
if (typeof(success) === "boolean") { done(success); } // Sync
|
||||
});
|
||||
return button;
|
||||
};
|
||||
|
|
|
@ -270,7 +270,7 @@ define([
|
|||
if (err) { return UI.warn(Messages.error); }
|
||||
UI.log(Messages.genericCopySuccess);
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
return button;
|
||||
};
|
||||
|
||||
|
@ -358,17 +358,19 @@ define([
|
|||
let button, pre;
|
||||
row(Messages.admin_accountReport, h('div', [
|
||||
pre = h('pre', data.archiveReport_formatted),
|
||||
button = blocks.activeButton('primary', '',Messages.admin_accountReportFull, () => {
|
||||
button = blocks.activeButton('primary', '',
|
||||
Messages.admin_accountReportFull, () => {
|
||||
$(button).remove();
|
||||
$(pre).html(JSON.stringify(data.archiveReport, 0, 2));
|
||||
})
|
||||
}, true)
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
// actions
|
||||
if (data.archived && data.live === false && data.archiveReport) {
|
||||
row(Messages.admin_restoreAccount, blocks.activeButton('primary', '',Messages.ui_restore, function () {
|
||||
let button = blocks.activeButton('primary', '',
|
||||
Messages.ui_restore, () => {
|
||||
justifyRestorationDialog('', reason => {
|
||||
sframeCommand('RESTORE_ACCOUNT', {
|
||||
key: data.key,
|
||||
|
@ -381,12 +383,14 @@ define([
|
|||
UI.log(Messages.ui_success);
|
||||
});
|
||||
});
|
||||
}));
|
||||
}, true);
|
||||
row(Messages.admin_restoreAccount, button);
|
||||
}
|
||||
|
||||
if (data.live === true) {
|
||||
var getPins = () => {
|
||||
var getPins = (done) => {
|
||||
sframeCommand('GET_PIN_LIST', data.key, (err, pins) => {
|
||||
done(!err && Array.isArray(pins));
|
||||
if (err || !Array.isArray(pins)) {
|
||||
console.error(err);
|
||||
return void UI.warn(Messages.error);
|
||||
|
@ -422,8 +426,9 @@ define([
|
|||
row(Messages.admin_getPinList, blocks.activeButton('primary', '', Messages.ui_fetch, getPins));
|
||||
|
||||
// get full pin history
|
||||
var getHistoryHandler = () => {
|
||||
var getHistoryHandler = (done) => {
|
||||
sframeCommand('GET_PIN_HISTORY', data.key, (err, history) => {
|
||||
done(!err);
|
||||
if (err) {
|
||||
console.error('Error retrieving pin history:', err);
|
||||
return void UI.warn(Messages.error);
|
||||
|
@ -431,7 +436,7 @@ define([
|
|||
UI.alert(history); // TODO NOT_IMPLEMENTED
|
||||
});
|
||||
};
|
||||
var pinHistoryButton = blocks.activeButton('primary','', Messages.ui_fetch, getHistoryHandler);
|
||||
var pinHistoryButton = blocks.activeButton('primary', '', Messages.ui_fetch, getHistoryHandler);
|
||||
disable($(pinHistoryButton));
|
||||
|
||||
// TODO pin history is not implemented
|
||||
|
@ -460,7 +465,9 @@ define([
|
|||
h('br'),
|
||||
h('small', Messages.admin_archiveAccountInfo)
|
||||
]);
|
||||
row(archiveAccountLabel, blocks.activeButton('danger', '', Messages.admin_archiveButton, archiveHandler));
|
||||
let archiveAccountButton = blocks.activeButton('danger', '',
|
||||
Messages.admin_archiveButton, archiveHandler, true);
|
||||
row(archiveAccountLabel, archiveAccountButton);
|
||||
|
||||
// archive owned documents
|
||||
/* // TODO not implemented
|
||||
|
@ -1221,7 +1228,7 @@ define([
|
|||
});
|
||||
});
|
||||
var edit = blocks.activeButton('secondary', 'fa fa-pencil',
|
||||
Messages.tag_edit, () => { editUser(); });
|
||||
Messages.tag_edit, () => { editUser(); }, true);
|
||||
|
||||
let aliasCell = blocks.text(data.alias);
|
||||
let emailCell = blocks.text(data.email);
|
||||
|
@ -1256,14 +1263,15 @@ define([
|
|||
};
|
||||
|
||||
let infoBtn = blocks.activeButton('primary', 'fa fa-database',
|
||||
Messages.admin_diskUsageButton, function () {
|
||||
getAccountData(key, (err, data) => {
|
||||
if (err) { return void console.error(err); }
|
||||
var table = renderAccountData(data);
|
||||
UI.alert(table, () => {}, {
|
||||
Messages.admin_diskUsageButton, function (done) {
|
||||
getAccountData(key, (err, data) => {
|
||||
done(!err);
|
||||
if (err) { return void console.error(err); }
|
||||
var table = renderAccountData(data);
|
||||
UI.alert(table, () => {}, {
|
||||
wide: true,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
newEntries.push([
|
||||
aliasCell,
|
||||
|
@ -1499,10 +1507,8 @@ define([
|
|||
var limit = getPrettySize(user.limit);
|
||||
var infoButton = blocks.button('primary.cp-report','', Messages.admin_diskUsageButton);
|
||||
Util.onClickEnter($(infoButton), function () {
|
||||
console.log(key);
|
||||
getAccountData(key, (err, data) => {
|
||||
if (err) { return void console.error(err); }
|
||||
console.log(data);
|
||||
var table = renderAccountData(data);
|
||||
UI.alert(table, () => {
|
||||
|
||||
|
@ -1721,8 +1727,9 @@ define([
|
|||
|
||||
// actions
|
||||
// get raw metadata history
|
||||
var metadataHistoryButton = blocks.activeButton('primary', '', Messages.ui_fetch, function () {
|
||||
var metadataHistoryButton = blocks.activeButton('primary', '', Messages.ui_fetch, done => {
|
||||
sframeCommand('GET_METADATA_HISTORY', data.id, (err, result) => {
|
||||
done(!err);
|
||||
if (err) {
|
||||
UI.warn(Messages.error);
|
||||
return void console.error(err);
|
||||
|
@ -1816,7 +1823,7 @@ define([
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
|
||||
let archiveButton = blocks.activeButton('danger', '',Messages.admin_archiveButton, function () {
|
||||
justifyArchivalDialog('', result => {
|
||||
|
@ -1832,7 +1839,7 @@ define([
|
|||
disableButtons();
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
|
||||
disableButtons = function () {
|
||||
[archiveButton, restoreButton].forEach(el => {
|
||||
|
@ -1869,7 +1876,7 @@ define([
|
|||
disable($(archiveDocumentButton));
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
row(Messages.admin_archiveDocument, h('span', [
|
||||
archiveDocumentButton,
|
||||
h('small', Messages.admin_archiveHint),
|
||||
|
@ -1889,7 +1896,7 @@ define([
|
|||
disable($(restoreDocumentButton));
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
row(Messages.admin_restoreDocument, h('span', [
|
||||
restoreDocumentButton,
|
||||
h('small', Messages.admin_unarchiveHint),
|
||||
|
@ -2112,7 +2119,7 @@ define([
|
|||
console.log('archive block', err, res);
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
row(Messages.admin_archiveBlock, archiveButton);
|
||||
}
|
||||
if (data.placeholder) {
|
||||
|
@ -2135,7 +2142,7 @@ define([
|
|||
UI.log(Messages.ui_success);
|
||||
});
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
row(Messages.admin_restoreBlock, restoreButton);
|
||||
}
|
||||
|
||||
|
@ -2154,7 +2161,7 @@ define([
|
|||
var btn = blocks.button('primary', '', Messages.ui_generateReport);
|
||||
var $btn = $(btn);
|
||||
disable($btn);
|
||||
|
||||
|
||||
var results = h('span');
|
||||
var nav = blocks.nav([btn]);
|
||||
var form = blocks.form([
|
||||
|
@ -2242,9 +2249,10 @@ define([
|
|||
if (!data.totpCheck || !data.totp.enabled) { return tableObj.table; }
|
||||
|
||||
// TOTP is enabled and the signature is correct: display "disable TOTP" button
|
||||
var disableButton = blocks.activeButton('danger','', Messages.admin_totpDisableButton);
|
||||
UI.confirmButton(disableButton, { classes: 'btn-danger' }, function () {
|
||||
var disableButton = blocks.activeButton('danger', '', Messages.admin_totpDisableButton);
|
||||
UI.confirmButton(disableButton, { classes: 'btn-danger' }, done => {
|
||||
sframeCommand('DISABLE_MFA', data.key, (err, res) => {
|
||||
done(!err);
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return void UI.warn(Messages.error);
|
||||
|
@ -2255,7 +2263,6 @@ define([
|
|||
UI.log(Messages.ui_success);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
row(Messages.admin_totpDisable, disableButton);
|
||||
|
||||
|
|
Loading…
Reference in a new issue