diff --git a/project/build.properties b/project/build.properties index 394cb75..8b697bb 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.0.4 +sbt.version=1.1.0 diff --git a/src/main/scala/gitbucket/core/service/MergeService.scala b/src/main/scala/gitbucket/core/service/MergeService.scala index 061b2a6..6888c8a 100644 --- a/src/main/scala/gitbucket/core/service/MergeService.scala +++ b/src/main/scala/gitbucket/core/service/MergeService.scala @@ -4,7 +4,7 @@ import gitbucket.core.util.Directory._ import gitbucket.core.util.SyntaxSugars._ import org.eclipse.jgit.merge.{MergeStrategy, Merger, RecursiveMerger} -import org.eclipse.jgit.api.{Git, MergeResult} +import org.eclipse.jgit.api.Git import org.eclipse.jgit.transport.RefSpec import org.eclipse.jgit.errors.NoMergeBaseException import org.eclipse.jgit.lib.{CommitBuilder, ObjectId, PersonIdent, Repository} @@ -211,7 +211,7 @@ } // update branch from cache - def merge(message:String, committer:PersonIdent) = { + def merge(message: String, committer: PersonIdent) = { if(checkConflict().isDefined){ throw new RuntimeException("This pull request can't merge automatically.") } @@ -229,12 +229,13 @@ throw new RuntimeException("This pull request can't merge automatically.") } - def _cloneCommit(commit: RevCommit, parents: Array[ObjectId]): CommitBuilder = { + def _cloneCommit(commit: RevCommit, parentId: ObjectId, baseId: ObjectId): CommitBuilder = { + val merger = MergeStrategy.RECURSIVE.newMerger(repository, true) + merger.merge(commit.toObjectId, baseId) + val newCommit = new CommitBuilder() - newCommit.setTreeId(commit.getTree.getId) - parents.foreach { parentId => - newCommit.addParentId(parentId) - } + newCommit.setTreeId(merger.getResultTreeId) + newCommit.addParentId(parentId) newCommit.setAuthor(commit.getAuthorIdent) newCommit.setCommitter(committer) newCommit.setMessage(commit.getFullMessage) @@ -246,7 +247,7 @@ using(repository.newObjectInserter){ inserter => commits.foreach { commit => - val nextCommit = _cloneCommit(commit, Array(previousId)) + val nextCommit = _cloneCommit(commit, previousId, mergeBaseTipCommit.getId) previousId = inserter.insert(nextCommit) } inserter.flush() diff --git a/src/main/twirl/gitbucket/core/account/main.scala.html b/src/main/twirl/gitbucket/core/account/main.scala.html index 9e2bebf..3a0c588 100644 --- a/src/main/twirl/gitbucket/core/account/main.scala.html +++ b/src/main/twirl/gitbucket/core/account/main.scala.html @@ -13,14 +13,14 @@
@account.description.map{ description => -

@description

+

@description

} @if(account.url.isDefined){

@account.url

} -

+

Joined on @helpers.date(account.registeredDate)

diff --git a/src/main/twirl/gitbucket/core/admin/dbviewer.scala.html b/src/main/twirl/gitbucket/core/admin/dbviewer.scala.html index 3dc0ddb..abe01b5 100644 --- a/src/main/twirl/gitbucket/core/admin/dbviewer.scala.html +++ b/src/main/twirl/gitbucket/core/admin/dbviewer.scala.html @@ -24,6 +24,7 @@
+
@@ -40,50 +41,55 @@ editor.setTheme("ace/theme/monokai"); editor.getSession().setMode("ace/mode/sql"); - $('#table-tree').jstree(); $('.table-link').click(function(e){ - var query = editor.getValue(); - if(query != ''){ - query = query + '\n'; + if(editor.getValue().trim() == ''){ + editor.getSession().insert(editor.getCursorPosition(), 'SELECT * FROM ' + $(e.target).text()); + } else { + editor.getSession().insert(editor.getCursorPosition(), $(e.target).text()); } - console.log(e); - editor.setValue(query + 'SELECT * FROM ' + $(e.target).text()); + editor.focus(); + }); + + $('#clear-query').click(function(){ + editor.setValue(''); }); $('#run-query').click(function(){ - console.log(editor.getValue()); - $.post('@context.path/admin/dbviewer/_query', { query: editor.getValue() }, function(data){ - if(data.type == "query"){ - var table = $(''); + var selectedText = editor.getSession().doc.getTextRange(editor.selection.getRange()).trim(); - var header = $(''); - $.each(data.columns, function(i, column){ - header.append($('').append(header)); + $.post('@context.path/admin/dbviewer/_query', { query: selectedText == '' ? editor.getValue() : selectedText }, + function(data){ + if(data.type == "query"){ + var table = $('
').text(column)); - }); - table.append($('
'); - var body = $(''); - $.each(data.rows, function(i, rs){ - var row = $(''); + var header = $(''); $.each(data.columns, function(i, column){ - row.append($('').append(header)); - table.append(body); - $('#result').empty().append(table); + var body = $(''); + $.each(data.rows, function(i, rs){ + var row = $(''); + $.each(data.columns, function(i, column){ + row.append($('
').text(rs[column])); + header.append($('').text(column)); }); - body.append(row); - }); + table.append($('
').text(rs[column])); + }); + body.append(row); + }); - } else if(data.type == "update"){ - $('#result').empty().append($('').text('Updated ' + data.rows + ' rows.')); + table.append(body); + $('#result').empty().append(table); - } else if(data.type == "error"){ - $('#result').empty().append($('').text(data.message)); + } else if(data.type == "update"){ + $('#result').empty().append($('').text('Updated ' + data.rows + ' rows.')); + + } else if(data.type == "error"){ + $('#result').empty().append($('').text(data.message)); + } } - }); - + ); }); }); diff --git a/src/main/twirl/gitbucket/core/issues/commentform.scala.html b/src/main/twirl/gitbucket/core/issues/commentform.scala.html index a022ac1..3854085 100644 --- a/src/main/twirl/gitbucket/core/issues/commentform.scala.html +++ b/src/main/twirl/gitbucket/core/issues/commentform.scala.html @@ -22,12 +22,24 @@ elastic = true, tabIndex = 1 ) -
- - @if((reopenable || !issue.closed) && (isManageable || issue.openedUserName == context.loginAccount.get.userName)){ - - } - +
+ + @if((reopenable || !issue.closed) && (isManageable || issue.openedUserName == context.loginAccount.get.userName)){ + + + } else { + + } +
@@ -35,8 +47,13 @@ }