diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.js index b52cb5d3970b2c0cb5e4d1e5bf8dfedc9f7ff377..e72219594a6a1bd1c1b95856d9faaf247d99039d 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.js @@ -102,8 +102,12 @@ ////////////////////////////////////////////////////////////////// // Change URL functions ////////////////////////////////////////////////////////////////// - function synchronousChangeState(hash) { - window.location.replace(hash); + function synchronousChangeState(hash, push_history) { + if (push_history) { + window.location = hash; + } else { + window.location.replace(hash); + } // Prevent execution of all next asynchronous code throw new RSVP.CancellationError('Redirecting to ' + hash); } @@ -970,14 +974,14 @@ return hash; }) - .declareMethod('redirect', function (options) { + .declareMethod('redirect', function (options, push_history) { this.props.form_content = options.form_content; // XXX Should we make it a second method parameter this.props.keep_message = true; delete options.form_content; return this.getCommandUrlFor(options) .push(function (hash) { - return synchronousChangeState(hash); + return synchronousChangeState(hash, push_history); }); })