From 8fe4c614db36a5abf2421a5a6902befdbe8507bf Mon Sep 17 00:00:00 2001 From: Dawa Ometto Date: Tue, 1 Oct 2019 15:47:25 +0200 Subject: [PATCH] Fix redirect location for editor submit (#1430) --- .../public/gollum/javascript/gollum.js.erb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/gollum/public/gollum/javascript/gollum.js.erb b/lib/gollum/public/gollum/javascript/gollum.js.erb index 57893108..f26a77d8 100755 --- a/lib/gollum/public/gollum/javascript/gollum.js.erb +++ b/lib/gollum/public/gollum/javascript/gollum.js.erb @@ -33,6 +33,12 @@ function prefixBaseUrl(path) { } } +// Ensure one slash at the beginning, no trailing slash. +function cleanPath (path){ + var result = '/' + path.replace(/\/$/,''); + return result.replace(/\/{2}/g, '/'); +} + function pageName(){ // "my/dir/file.md" => "file" if (typeof(pageFullPath) == 'undefined') { @@ -207,7 +213,7 @@ $(document).ready(function() { var oldName = pageName(); var context_blurb = "Renamed page will be under " + - "" + htmlEscape('/' + path) + "" + + "" + htmlEscape(cleanPath(path)) + "" + " unless an absolute path is given." $.GollumDialog.init({ @@ -246,19 +252,17 @@ $(document).ready(function() { $('#minibutton-new-page').parent().removeClass('jaws'); $('#minibutton-new-page').click(function(e) { e.preventDefault(); - var path = pagePath(); if( path === undefined && $('#file-browser').length != 0 ){ // In the pages view, pageFullPath isn't defined. // The new button will still expect a value however. // So we try to figure one out from window.location path = window.location.pathname.replace(routePath('overview'), '') - // For consistency remove the trailing / - path = path.replace(/\/$/,'') } + var context_blurb = "Page will be created under " + - "" + htmlEscape('/' + path) + "" + + "" + htmlEscape(cleanPath(path)) + "" + " unless an absolute path is given." $.GollumDialog.init({ @@ -425,7 +429,7 @@ $(document).ready(function() { $(this).attr('disabled', true); var formData = new FormData($('#gollum-editor-form').get(0)); - var newPath = prefixBaseUrl(pagePath() + '/' + pageName() + formatToExt($('#wiki_format')[0].value)); + var newPath = cleanPath(prefixBaseUrl(pagePath() + '/' + pageName() + formatToExt($('#wiki_format')[0].value))); var endpoint = $('#gollum-editor-form').attr("action"); $.ajax({