diff --git a/customize.dist/src/less2/include/forms.less b/customize.dist/src/less2/include/forms.less index c5db3861e..5f917b6c6 100644 --- a/customize.dist/src/less2/include/forms.less +++ b/customize.dist/src/less2/include/forms.less @@ -92,6 +92,9 @@ border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; background-color: @cp_buttons-default-color; + &.btn-primary, &.btn-secondary { + background-color: @cp_buttons-primary; + } &.danger, &.btn-danger, &.danger-alt, &.btn-danger-alt { background-color: @cp_buttons-red; } diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 7a187b434..917bbed00 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -124,7 +124,6 @@ define([ }; var getDateLanguage = function () { - console.error(Messages._languageUsed); try { new Date().toLocaleDateString(Messages._languageUsed, { weekday: 'long' }); return Messages._languageUsed; diff --git a/www/calendar/main.js b/www/calendar/main.js index 6f8e362f7..5858729ee 100644 --- a/www/calendar/main.js +++ b/www/calendar/main.js @@ -21,10 +21,12 @@ define([ meta.calendarOpts = Utils.Hash.decodeDataOptions(parsed.hashData.newPadOpts); } } - meta.calendarHash = Boolean(window.location.hash); + meta.calendarHash = hash; }; SFCommonO.start({ addData: addData, + hash: hash, + href: href, noRealtime: true, cache: true, }); diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index bb451c7fc..a3eb76857 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -2945,7 +2945,8 @@ define([ $block.find('a.cp-app-drive-new-link, li.cp-app-drive-new-link').click(showLinkModal); } $block.find('a.cp-app-drive-new-doc, li.cp-app-drive-new-doc') - .click(function () { + .on('click auxclick', function (e) { + e.preventDefault(); var type = $(this).attr('data-type') || 'pad'; var path = manager.isPathIn(currentPath, [TRASH]) ? '' : currentPath; openIn(type, path, APP.team); @@ -3040,7 +3041,7 @@ define([ }; if (obj.type) { newObj.attributes['data-type'] = obj.type; - newObj.attributes['href'] = '#'; + newObj.attributes['href'] = APP.origin + Hash.hashToHref('', obj.type); } return newObj; }); diff --git a/www/common/inner/access.js b/www/common/inner/access.js index 0a55ec58a..58d388271 100644 --- a/www/common/inner/access.js +++ b/www/common/inner/access.js @@ -336,11 +336,6 @@ define([ } }).nThen(function (waitFor) { var href = data.href; - var hashes = priv.hashes || {}; - var bestHash = hashes.editHash || hashes.viewHash || hashes.fileHash; - if (data.fakeHref) { - href = Hash.hashToHref(bestHash, priv.app); - } sel.forEach(function (el) { var curve = $(el).attr('data-curve'); if (curve === user.curvePublic) { return; } @@ -929,12 +924,7 @@ define([ } var href = data.href; - var hashes = priv.hashes || {}; - var bestHash = hashes.editHash || hashes.viewHash || hashes.fileHash; - if (data.fakeHref) { - href = Hash.hashToHref(bestHash, priv.app); - } - var isNotStored = Boolean(data.fakeHref); + var isNotStored = Boolean(data.isNotStored); sframeChan.query(q, { teamId: typeof(owned) !== "boolean" ? owned : undefined, href: href, @@ -1056,7 +1046,7 @@ define([ var owned = Modal.isOwned(Env, data); // Request edit access - if (common.isLoggedIn() && ((data.roHref && !data.href) || data.fakeHref) && !owned && !opts.calendar && priv.app !== 'form') { + if (common.isLoggedIn() && data.roHref && !owned && !opts.calendar && priv.app !== 'form') { var requestButton = h('button.btn.btn-secondary.no-margin.cp-access-margin-right', Messages.requestEdit_button); var requestBlock = h('p', requestButton); diff --git a/www/common/inner/common-modal.js b/www/common/inner/common-modal.js index 6d34747e2..2b6b874cf 100644 --- a/www/common/inner/common-modal.js +++ b/www/common/inner/common-modal.js @@ -42,11 +42,13 @@ define([ if (err || !val) { if (opts.access) { data.password = priv.password; - // Access modal and the pad is not stored: we're not an owner - // so we don't need the correct href, just the type - var h = Hash.createRandomHash(priv.app, priv.password); - data.fakeHref = true; - data.href = base + priv.pathname + '#' + h; + // Access modal and the pad is not stored: get the hashes from outer + var hashes = priv.hashes || {}; + data.href = Hash.hashToHref(hashes.editHash || hashes.fileHash, priv.app); + if (hashes.viewHash) { + data.roHref = Hash.hashToHref(hashes.viewHash, priv.app); + } + data.isNotStored = true; } else { waitFor.abort(); return void cb(err || 'EEMPTY'); diff --git a/www/common/inner/properties.js b/www/common/inner/properties.js index 0c5a05959..1fdf3e69f 100644 --- a/www/common/inner/properties.js +++ b/www/common/inner/properties.js @@ -37,20 +37,18 @@ define([ })); } - if (!data.fakeHref) { - if (data.href) { - $('