diff --git a/git-webui/release/share/git-webui/webui/js/git-webui.js b/git-webui/release/share/git-webui/webui/js/git-webui.js index 25b8ef98..a781423d 100644 --- a/git-webui/release/share/git-webui/webui/js/git-webui.js +++ b/git-webui/release/share/git-webui/webui/js/git-webui.js @@ -37,6 +37,19 @@ webui.COLORS = ["#ffab1d", "#fd8c25", "#f36e4a", "#fc6148", "#d75ab6", "#b25ade" "#e47b07", "#e36920", "#d34e2a", "#ec3b24", "#ba3d99", "#9d45c9", "#4f5aec", "#615dcf", "#3286cf", "#00abca", "#279227", "#3a980c", "#6c7f00", "#ab8b0a", "#b56427", "#757575", "#ff911a", "#fc8120", "#e7623e", "#fa5236", "#ca4da9", "#a74fd3", "#5a68ff", "#6d69db", "#489bd9", "#00bcde", "#36a436", "#47a519", "#798d0a", "#c1a120", "#bf7730", "#8e8e8e"] +webui.showSuccess = function(message) { + var messageBox = $("#message-box"); + messageBox.empty(); + $( '').appendTo(messageBox); +} webui.showError = function(message) { $("#error-modal .alert").text(message); @@ -122,10 +135,21 @@ webui.git = function(cmd, arg1, arg2, arg3, arg4) { } } } else { - if(errorCallback) { - errorCallback(message); - } else{ - webui.showError(message); + var displayMessage = "" + if(output.length > 0){ + displayMessage += (output+"\n"); + } + if(message.length > 0){ + displayMessage += message; + } + if(displayMessage.length > 0){ + if(errorCallback) { + errorCallback(displayMessage); + } else{ + webui.showError(displayMessage); + } + } else { + webui.showError("The command
"+cmd+"
failed because of an unknown reason. Returned response: \n\n"+data) } } } else { @@ -289,6 +313,7 @@ webui.SideBarView = function(mainView) { var cardBody = $('
' + '
'+ ''+ + ''+ ''+ '
'+ '
').appendTo(collapseDiv); @@ -315,6 +340,7 @@ webui.SideBarView = function(mainView) { var cardBody = $('
' + '
'+ ''+ + ''+ '
'+ '
').appendTo(collapseDiv); } @@ -1953,6 +1979,55 @@ $(function () { }); + $(document).on('click', '.btn-merge-branch', function(e){ + e.preventDefault(); + var refName = $(this).parent().parent().parent().siblings( + ".card-header").children("button").html(); + + function testMergeHandler (message) { + function suppressErrorMessage(error) { + } + webui.git("merge --abort", "", "", suppressErrorMessage); + + if(message.includes("Automatic merge went well") || message.includes("Auto-merging ")){ + webui.git("merge "+refName, function (output){ + webui.showSuccess(output); + }); + } + else { + webui.showError(message); + } + } + webui.git("merge --no-commit --no-ff "+refName, "", "", testMergeHandler, testMergeHandler); + }); + + $(document).on('click', '.btn-merge-remote-branch', function(e){ + e.preventDefault(); + var refName = $(this).parent().parent().parent().siblings( + ".card-header").children("button").html(); + + var remoteName = refName.split('/')[0]; + var branchName = refName.split('/')[1]; + + webui.git("fetch "+remoteName+" "+branchName); + + function testMergeHandler (message) { + function suppressErrorMessage(error) { + } + webui.git("merge --abort", "", "", suppressErrorMessage); + + if(message.includes("Automatic merge went well") || message.includes("Auto-merging ")){ + webui.git("merge "+refName, function (output){ + webui.showSuccess(output); + }); + } + else { + webui.showError(message); + } + } + webui.git("merge --no-commit --no-ff "+refName, "", "", testMergeHandler, testMergeHandler); + }); + $(document).on('click', '.btn-checkout-remote-branch', function(e) { e.preventDefault(); var refName = $(this).parent().parent().parent().siblings( @@ -1961,7 +2036,7 @@ $(function () { var remoteName = refName.split('/')[0]; var branchName = refName.split('/')[1]; - webui.git("fetch "+remoteName); + webui.git("fetch "+remoteName+" "+branchName); webui.git("checkout -b " +branchName + " " + refName, function() { updateSideBar(); });