mirror of
				https://github.com/gitbucket/gitbucket.git
				synced 2025-11-03 20:15:59 +01:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			revert_pul
			...
			3.10.1_h2-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a7afc3e8f9 | ||
| 
						 | 
					8e8468b5b1 | ||
| 
						 | 
					8665a6ee44 | ||
| 
						 | 
					f4932ab88e | 
@@ -95,6 +95,12 @@ Support
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Release Notes
 | 
					Release Notes
 | 
				
			||||||
--------
 | 
					--------
 | 
				
			||||||
 | 
					### 3.10 - 30 Dec 2015
 | 
				
			||||||
 | 
					- Move to Bootstrap3
 | 
				
			||||||
 | 
					- New URL for raw contents (`raw/master/doc/activity.md` instead of `blob/master/doc/activity.md?raw=true`)
 | 
				
			||||||
 | 
					- Update xsbt-web-pligin
 | 
				
			||||||
 | 
					- Update H2 database
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 3.9 - 5 Dec 2015
 | 
					### 3.9 - 5 Dec 2015
 | 
				
			||||||
- GFM inline breaks support in Markdown
 | 
					- GFM inline breaks support in Markdown
 | 
				
			||||||
- WebHook on create review comment is available
 | 
					- WebHook on create review comment is available
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ import JettyPlugin.autoImport._
 | 
				
			|||||||
object MyBuild extends Build {
 | 
					object MyBuild extends Build {
 | 
				
			||||||
  val Organization = "gitbucket"
 | 
					  val Organization = "gitbucket"
 | 
				
			||||||
  val Name = "gitbucket"
 | 
					  val Name = "gitbucket"
 | 
				
			||||||
  val Version = "3.9.1"
 | 
					  val Version = "3.10.1"
 | 
				
			||||||
  val ScalaVersion = "2.11.6"
 | 
					  val ScalaVersion = "2.11.6"
 | 
				
			||||||
  val ScalatraVersion = "2.3.1"
 | 
					  val ScalatraVersion = "2.3.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,12 +6,14 @@
 | 
				
			|||||||
    </encoder>
 | 
					    </encoder>
 | 
				
			||||||
  </appender>
 | 
					  </appender>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!--
 | 
				
			||||||
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
 | 
					  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
 | 
				
			||||||
    <file>gitbucket.log</file>
 | 
					    <file>gitbucket.log</file>
 | 
				
			||||||
    <encoder>
 | 
					    <encoder>
 | 
				
			||||||
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
					      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
				
			||||||
    </encoder>
 | 
					    </encoder>
 | 
				
			||||||
  </appender>
 | 
					  </appender>
 | 
				
			||||||
 | 
					  -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <root level="INFO">
 | 
					  <root level="INFO">
 | 
				
			||||||
    <appender-ref ref="STDOUT" />
 | 
					    <appender-ref ref="STDOUT" />
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,7 @@ object AutoUpdate {
 | 
				
			|||||||
   * The history of versions. A head of this sequence is the current BitBucket version.
 | 
					   * The history of versions. A head of this sequence is the current BitBucket version.
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  val versions = Seq(
 | 
					  val versions = Seq(
 | 
				
			||||||
 | 
					    new Version(3, 10),
 | 
				
			||||||
    new Version(3, 9),
 | 
					    new Version(3, 9),
 | 
				
			||||||
    new Version(3, 8),
 | 
					    new Version(3, 8),
 | 
				
			||||||
    new Version(3, 7) with SystemSettingsService {
 | 
					    new Version(3, 7) with SystemSettingsService {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ isCreateRepoOptionPublic: Boolean)(implicit context: gitbucket.core.controller.C
 | 
				
			|||||||
            <ul class="dropdown-menu">
 | 
					            <ul class="dropdown-menu">
 | 
				
			||||||
              <li><a href="javascript:void(0);" data-name="@loginAccount.get.userName"><i class="octicon octicon-check"></i> <span>@avatar(loginAccount.get.userName, 20) @loginAccount.get.userName</span></a></li>
 | 
					              <li><a href="javascript:void(0);" data-name="@loginAccount.get.userName"><i class="octicon octicon-check"></i> <span>@avatar(loginAccount.get.userName, 20) @loginAccount.get.userName</span></a></li>
 | 
				
			||||||
              @groupNames.map { groupName =>
 | 
					              @groupNames.map { groupName =>
 | 
				
			||||||
                <li><a href="javascript:void(0);" data-name="@groupName"><i class="icon-white"></i> <span>@avatar(groupName, 20) @groupName</span></a></li>
 | 
					                <li><a href="javascript:void(0);" data-name="@groupName"><i class="octicon"></i> <span>@avatar(groupName, 20) @groupName</span></a></li>
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
            <input type="hidden" name="owner" id="owner" value="@loginAccount.get.userName"/>
 | 
					            <input type="hidden" name="owner" id="owner" value="@loginAccount.get.userName"/>
 | 
				
			||||||
@@ -77,8 +77,8 @@ $('#owner-dropdown a').click(function(){
 | 
				
			|||||||
  var userName = $(this).data('name');
 | 
					  var userName = $(this).data('name');
 | 
				
			||||||
  $('#owner').val(userName);
 | 
					  $('#owner').val(userName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $('#owner-dropdown i').attr('class', 'icon-white');
 | 
					  $('#owner-dropdown i').attr('class', 'octicon');
 | 
				
			||||||
  $(this).find('i').attr('class', 'icon-ok');
 | 
					  $(this).find('i').attr('class', 'octicon octicon-check');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $('#owner-dropdown span.strong').html($(this).find('span').html());
 | 
					  $('#owner-dropdown span.strong').html($(this).find('span').html());
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,5 +2,5 @@
 | 
				
			|||||||
@if(condition){
 | 
					@if(condition){
 | 
				
			||||||
  <i class="octicon octicon-check"></i>
 | 
					  <i class="octicon octicon-check"></i>
 | 
				
			||||||
} else {
 | 
					} else {
 | 
				
			||||||
  <i class="icon-white"></i>
 | 
					  <i class="octicon"></i>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -93,7 +93,7 @@
 | 
				
			|||||||
        @collaborators.map { collaborator =>
 | 
					        @collaborators.map { collaborator =>
 | 
				
			||||||
          <li>
 | 
					          <li>
 | 
				
			||||||
            <a href="javascript:void(0);" class="assign" data-name="@collaborator">
 | 
					            <a href="javascript:void(0);" class="assign" data-name="@collaborator">
 | 
				
			||||||
              @helper.html.checkicon(issue.exists(_.assignedUserName == collaborator))@avatar(collaborator, 20) @collaborator
 | 
					              @helper.html.checkicon(issue.exists(_.assignedUserName.exists(_ == collaborator)))@avatar(collaborator, 20) @collaborator
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -164,7 +164,7 @@ $(function(){
 | 
				
			|||||||
    switchLabel($(this));
 | 
					    switchLabel($(this));
 | 
				
			||||||
    var labelNames = Array();
 | 
					    var labelNames = Array();
 | 
				
			||||||
    $('a.toggle-label').each(function(i, e){
 | 
					    $('a.toggle-label').each(function(i, e){
 | 
				
			||||||
      if($(e).children('i').hasClass('icon-ok') == true){
 | 
					      if($(e).children('i').hasClass('octicon-check') == true){
 | 
				
			||||||
        labelNames.push($(e).text().trim());
 | 
					        labelNames.push($(e).text().trim());
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@@ -195,17 +195,17 @@ $(function(){
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  function switchLabel($this){
 | 
					  function switchLabel($this){
 | 
				
			||||||
    var i = $this.children('i');
 | 
					    var i = $this.children('i');
 | 
				
			||||||
    if(i.hasClass('icon-ok')){
 | 
					    if(i.hasClass('octicon-check')){
 | 
				
			||||||
      i.removeClass().addClass('icon-white');
 | 
					      i.removeClass('octicon-check');
 | 
				
			||||||
      return 'delete';
 | 
					      return 'delete';
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      i.removeClass().addClass('icon-ok');
 | 
					      i.addClass('octicon-check');
 | 
				
			||||||
      return 'new';
 | 
					      return 'new';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function displayMilestone(title, milestoneId, progress){
 | 
					  function displayMilestone(title, milestoneId, progress){
 | 
				
			||||||
    $('a.milestone i.icon-ok').attr('class', 'icon-white');
 | 
					    $('a.milestone i.octicon-check').removeClass('octicon-check');
 | 
				
			||||||
    if(milestoneId == ''){
 | 
					    if(milestoneId == ''){
 | 
				
			||||||
      $('#label-milestone').html($('<span class="muted small">').text('No milestone'));
 | 
					      $('#label-milestone').html($('<span class="muted small">').text('No milestone'));
 | 
				
			||||||
      $('#milestone-progress-area').empty();
 | 
					      $('#milestone-progress-area').empty();
 | 
				
			||||||
@@ -214,19 +214,19 @@ $(function(){
 | 
				
			|||||||
      if(progress){
 | 
					      if(progress){
 | 
				
			||||||
        $('#milestone-progress-area').html(progress);
 | 
					        $('#milestone-progress-area').html(progress);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      $('a.milestone[data-id=' + milestoneId + '] i').attr('class', 'icon-ok');
 | 
					      $('a.milestone[data-id=' + milestoneId + '] i').addClass('octicon-check');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function displayAssignee($this, userName){
 | 
					  function displayAssignee($this, userName){
 | 
				
			||||||
    $('a.assign i.icon-ok').attr('class', 'icon-white');
 | 
					    $('a.assign i.octicon-check').removeClass('octicon-check');
 | 
				
			||||||
    if(userName == ''){
 | 
					    if(userName == ''){
 | 
				
			||||||
      $('#label-assigned').html($('<span class="muted small">').text('No one'));
 | 
					      $('#label-assigned').html($('<span class="muted small">').text('No one'));
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      $('#label-assigned').empty()
 | 
					      $('#label-assigned').empty()
 | 
				
			||||||
        .append($this.find('img.avatar-mini').clone(false)).append(' ')
 | 
					        .append($this.find('img.avatar-mini').clone(false)).append(' ')
 | 
				
			||||||
        .append($('<a class="username strong small">').attr('href', '@context.path/' + userName).text(userName));
 | 
					        .append($('<a class="username strong small">').attr('href', '@context.path/' + userName).text(userName));
 | 
				
			||||||
      $('a.assign[data-name=' + jqSelectorEscape(userName) + '] i').attr('class', 'icon-ok');
 | 
					      $('a.assign[data-name=' + jqSelectorEscape(userName) + '] i').addClass('octicon-check');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -124,7 +124,7 @@
 | 
				
			|||||||
              @labels.map { label =>
 | 
					              @labels.map { label =>
 | 
				
			||||||
                <li>
 | 
					                <li>
 | 
				
			||||||
                  <a href="javascript:void(0);" class="toggle-label" data-id="@label.labelId">
 | 
					                  <a href="javascript:void(0);" class="toggle-label" data-id="@label.labelId">
 | 
				
			||||||
                    <i class="icon-white"></i>
 | 
					                    <i class="octicon"></i>
 | 
				
			||||||
                    <span class="label" style="background-color: #@label.color;"> </span>
 | 
					                    <span class="label" style="background-color: #@label.color;"> </span>
 | 
				
			||||||
                    @label.labelName
 | 
					                    @label.labelName
 | 
				
			||||||
                  </a>
 | 
					                  </a>
 | 
				
			||||||
@@ -140,7 +140,7 @@
 | 
				
			|||||||
            @helper.html.dropdown("Assignee", flat = true) {
 | 
					            @helper.html.dropdown("Assignee", flat = true) {
 | 
				
			||||||
              <li><a href="javascript:void(0);" class="toggle-assign" data-name=""><i class="octicon octicon-x"></i> Clear assignee</a></li>
 | 
					              <li><a href="javascript:void(0);" class="toggle-assign" data-name=""><i class="octicon octicon-x"></i> Clear assignee</a></li>
 | 
				
			||||||
              @collaborators.map { collaborator =>
 | 
					              @collaborators.map { collaborator =>
 | 
				
			||||||
                <li><a href="javascript:void(0);" class="toggle-assign" data-name="@collaborator"><i class="icon-white"></i>@avatar(collaborator, 20) @collaborator</a></li>
 | 
					                <li><a href="javascript:void(0);" class="toggle-assign" data-name="@collaborator"><i class="octicon"></i>@avatar(collaborator, 20) @collaborator</a></li>
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -174,8 +174,8 @@
 | 
				
			|||||||
$(function(){
 | 
					$(function(){
 | 
				
			||||||
  $('a.origin-owner, a.forked-owner, a.origin-branch, a.forked-branch').click(function(){
 | 
					  $('a.origin-owner, a.forked-owner, a.origin-branch, a.forked-branch').click(function(){
 | 
				
			||||||
    var e = $(this);
 | 
					    var e = $(this);
 | 
				
			||||||
    e.parents('ul').find('i').attr('class', 'icon-white');
 | 
					    e.parents('ul').find('i').attr('class', 'octicon');
 | 
				
			||||||
    e.find('i').attr('class', 'octicon-check');
 | 
					    e.find('i').addClass('octicon-check');
 | 
				
			||||||
    e.parents('div.btn-group').find('button span.strong').text(e.text());
 | 
					    e.parents('div.btn-group').find('button span.strong').text(e.text());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @if(members.isEmpty){
 | 
					    @if(members.isEmpty){
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user