Make automatic pad storage configurable
This commit is contained in:
@@ -879,9 +879,12 @@ define([
|
||||
|
||||
UI.createRadio = Pages.createRadio;
|
||||
|
||||
UI.cornerPopup = function (text, actions, footer) {
|
||||
// XXX create "minimize" icon
|
||||
UI.cornerPopup = function (text, actions, footer, startHidden) {
|
||||
var minimize = h('div.cp-corner-minimize.fa.fa-window-minimize');
|
||||
var maximize = h('div.cp-corner-maximize.fa.fa-window-maximize');
|
||||
var popup = h('div.cp-corner-container', [
|
||||
minimize,
|
||||
maximize,
|
||||
h('div.cp-corner-filler', { style: "width:130px;" }),
|
||||
h('div.cp-corner-filler', { style: "width:90px;" }),
|
||||
h('div.cp-corner-filler', { style: "width:60px;" }),
|
||||
@@ -889,9 +892,20 @@ define([
|
||||
h('div.cp-corner-filler', { style: "width:20px;" }),
|
||||
h('div.cp-corner-text', text),
|
||||
h('div.cp-corner-actions', actions),
|
||||
h('div.cp-corner-footer', footer)
|
||||
Pages.setHTML(h('div.cp-corner-footer'), footer)
|
||||
]);
|
||||
|
||||
$(minimize).click(function () {
|
||||
$(popup).addClass('cp-minimized');
|
||||
});
|
||||
$(maximize).click(function () {
|
||||
$(popup).removeClass('cp-minimized');
|
||||
});
|
||||
|
||||
if (startHidden) {
|
||||
$(popup).addClass('cp-minimized');
|
||||
}
|
||||
|
||||
var hide = function () {
|
||||
$(popup).hide();
|
||||
};
|
||||
@@ -905,6 +919,7 @@ define([
|
||||
$('body').append(popup);
|
||||
|
||||
return {
|
||||
popup: popup,
|
||||
hide: hide,
|
||||
show: show,
|
||||
delete: deletePopup
|
||||
|
||||
@@ -2309,22 +2309,27 @@ define([
|
||||
};
|
||||
|
||||
var storePopupState = false;
|
||||
UIElements.displayStorePadPopup = function (common) {
|
||||
UIElements.displayStorePadPopup = function (common, data) {
|
||||
if (storePopupState) { return; }
|
||||
storePopupState = true;
|
||||
|
||||
var text = Messages.manual_notstored;
|
||||
var footer = Messages.manual_settings;
|
||||
var text = Messages.autostore_notstored;
|
||||
var footer = Messages.autostore_settings;
|
||||
|
||||
var hide = h('button.cp-corner-cancel', Messages.manual_hide);
|
||||
var store = h('button.cp-corner-primary', Messages.manual_store);
|
||||
var hide = h('button.cp-corner-cancel', Messages.autostore_hide);
|
||||
var store = h('button.cp-corner-primary', Messages.autostore_store);
|
||||
var actions = h('div', [
|
||||
store,
|
||||
hide,
|
||||
]);
|
||||
|
||||
console.log(text, footer);
|
||||
var modal = UI.cornerPopup(text, actions, footer);
|
||||
var initialHide = data && data.autoStore && data.autoStore === -1;
|
||||
var modal = UI.cornerPopup(text, actions, footer, initialHide);
|
||||
|
||||
$(modal.popup).find('.cp-corner-footer a').click(function (e) {
|
||||
e.preventDefault();
|
||||
common.openURL('/settings/');
|
||||
});
|
||||
|
||||
$(hide).click(function () {
|
||||
modal.delete();
|
||||
@@ -2334,9 +2339,9 @@ define([
|
||||
common.getSframeChannel().query("Q_AUTOSTORE_STORE", null, function (err, obj) {
|
||||
if (err || (obj && obj.error)) {
|
||||
console.error(err || obj.error);
|
||||
return void UI.warn("Error"); // XXX
|
||||
return void UI.warn(Messages.autostore_error);
|
||||
}
|
||||
UI.log("Saved"); // XXX
|
||||
UI.log(Messages.autostore_saved);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -767,12 +767,11 @@ define([
|
||||
if (!contains) {
|
||||
var autoStore = Util.find(store.proxy, ['settings', 'general', 'autostore']);
|
||||
if (autoStore !== 1 && !data.forceSave && !data.path) {
|
||||
// XXX
|
||||
// send event to inner to display the corner popup
|
||||
postMessage(clientId, "AUTOSTORE_DISPLAY_POPUP", {
|
||||
autoStore: autoStore
|
||||
});
|
||||
return void cb({error: "EAUTH"});
|
||||
return void cb();
|
||||
} else {
|
||||
var roHref;
|
||||
if (h.mode === "view") {
|
||||
|
||||
@@ -17,6 +17,7 @@ define([
|
||||
var path = file.path;
|
||||
|
||||
var password = file.password;
|
||||
var forceSave = file.forceSave;
|
||||
var hash, secret, key, id, href;
|
||||
|
||||
var getNewHash = function () {
|
||||
@@ -94,7 +95,7 @@ define([
|
||||
password: password,
|
||||
channel: id,
|
||||
owners: metadata.owners,
|
||||
// XXX FORCESAVE ??
|
||||
forceSave: forceSave
|
||||
};
|
||||
common.setPadTitle(data, function (err) {
|
||||
if (err) { return void console.error(err); }
|
||||
|
||||
@@ -233,6 +233,13 @@ define([
|
||||
return q;
|
||||
};
|
||||
|
||||
var privateData = common.getMetadataMgr().getPrivateData();
|
||||
var autoStore = Util.find(privateData, ['settings', 'general', 'autostore']) || 0;
|
||||
var manualStore = autoStore === 1 ? undefined :
|
||||
UI.createCheckbox('cp-upload-store', Messages.autostore_forceSave, true, {
|
||||
input: { disabled: true }
|
||||
});
|
||||
|
||||
// Ask for name, password and owner
|
||||
var content = h('div', [
|
||||
h('h4', Messages.upload_modal_title),
|
||||
@@ -247,8 +254,18 @@ define([
|
||||
UI.createCheckbox('cp-upload-owned', Messages.upload_modal_owner, true),
|
||||
createHelper('/faq.html#keywords-owned', Messages.creation_owned1)
|
||||
]),
|
||||
manualStore
|
||||
]);
|
||||
|
||||
$(content).find('#cp-upload-owned').on('change', function () {
|
||||
var val = $(content).find('#cp-upload-owned').is(':checked');
|
||||
if (val) {
|
||||
$(content).find('#cp-upload-store').prop('checked', true).prop('disabled', true);
|
||||
} else {
|
||||
$(content).find('#cp-upload-store').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
|
||||
UI.confirm(content, function (yes) {
|
||||
if (!yes) { return void cb(); }
|
||||
|
||||
@@ -256,6 +273,7 @@ define([
|
||||
var newName = $(content).find('#cp-upload-name').val();
|
||||
var password = $(content).find('#cp-upload-password').val() || undefined;
|
||||
var owned = $(content).find('#cp-upload-owned').is(':checked');
|
||||
var forceSave = owned || $(content).find('#cp-upload-store').is(':checked');
|
||||
|
||||
// Add extension to the name if needed
|
||||
if (!newName || !newName.trim()) { newName = file.name; }
|
||||
@@ -266,7 +284,8 @@ define([
|
||||
cb({
|
||||
name: newName,
|
||||
password: password,
|
||||
owned: owned
|
||||
owned: owned,
|
||||
forceSave: forceSave
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -284,6 +303,7 @@ define([
|
||||
var name = file.name;
|
||||
var password;
|
||||
var owned = true;
|
||||
var forceSave;
|
||||
var finish = function (abort) {
|
||||
if (!abort) {
|
||||
var metadata = {
|
||||
@@ -296,6 +316,7 @@ define([
|
||||
metadata: metadata,
|
||||
password: password,
|
||||
owned: owned,
|
||||
forceSave: forceSave,
|
||||
dropEvent: e
|
||||
});
|
||||
}
|
||||
@@ -316,6 +337,7 @@ define([
|
||||
name = obj.name;
|
||||
password = obj.password;
|
||||
owned = obj.owned;
|
||||
forceSave = obj.forceSave;
|
||||
finish();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -452,8 +452,8 @@ define([
|
||||
UI.errorLoadingScreen($err, true, true);
|
||||
});
|
||||
|
||||
ctx.sframeChan.on('EV_AUTOSTORE_DISPLAY_POPUP', function () {
|
||||
UIElements.displayStorePadPopup(funcs);
|
||||
ctx.sframeChan.on('EV_AUTOSTORE_DISPLAY_POPUP', function (data) {
|
||||
UIElements.displayStorePadPopup(funcs, data);
|
||||
});
|
||||
|
||||
ctx.metadataMgr.onReady(waitFor());
|
||||
|
||||
Reference in New Issue
Block a user