diff --git a/www/settings/inner.js b/www/settings/inner.js
index 31b62220c..49fba02d9 100644
--- a/www/settings/inner.js
+++ b/www/settings/inner.js
@@ -1199,7 +1199,8 @@ define([
};
makeBlock('trim-history', function (cb) {
- // XXX settings_trimHistoryTitle, settings_trimHistoryHint, settings_trimHistoryButton
+ if (!common.isLoggedIn()) { return; }
+ // XXX settings_trimHistoryTitle, settings_trimHistoryHint, settings_trimHistoryButton, settings_trimHistoryError
// XXX trimHistory_confirm
var spinner = UI.makeSpinner();
@@ -1214,17 +1215,42 @@ define([
spinner.spinner
]);
- Messages.trimHistory_currentSize = 'Abcd: {0}'; // XXX
+ Messages.trimHistory_currentSize = 'Size XXX: {0}'; // XXX
+ var $button = $(button);
var size;
nThen(function (waitFor) {
- size = UIElements.prettySize(1024*12); // XXX get size
+ APP.history.execCommand('GET_HISTORY_SIZE', {
+ account: true,
+ channels: []
+ }, waitFor(function (obj) {
+ if (obj && obj.error) {
+ waitFor.abort();
+ var error = h('div.alert.alert-danger', Messages.settings_trimHistoryError || 'error'); // XXX
+ $(content).empty().append(error);
+ return;
+ }
+ size = UIElements.prettySize(Number(obj.size));
+ }));
}).nThen(function () {
$(currentSize).html(Messages._getKey('trimHistory_currentSize', [size]));
- $(button).click(function () {
+ $button.click(function () {
UI.confirm(Messages.trimHistory_confirm, function (yes) {
if (!yes) { return; }
+
+ $button.remove();
spinner.spin();
+ APP.history.execCommand('TRIM_HISTORY', {
+ account: true,
+ channels: []
+ }, function (obj) {
+ if (obj && obj.error) {
+ // XXX what are the possible errors?
+ return;
+ }
+ spinner.hide();
+ $(content).append(h('div.alert.alert-success', Messages.settings_trimHistorySuccess || 'ok')); // XXX
+ });
});
}).prop('disabled', '');
});
@@ -1716,6 +1742,7 @@ define([
};
APP.toolbar = Toolbar.create(configTb);
APP.toolbar.$rightside.hide();
+ APP.history = common.makeUniversal('history');
// Content
var $rightside = APP.$rightside;
@@ -1734,6 +1761,7 @@ define([
categories[cat].forEach(addItem);
}
+
// TODO RPC
//obj.proxy.on('change', [], refresh);
//obj.proxy.on('remove', [], refresh);