Newer
Older
GitBucket / src / main / twirl / gitbucket / core / helper / dropdown.scala.html
@(value : String  = "",
  prefix: String  = "",
  style : String  = "",
  right : Boolean = false,
  filter: String = "",
  uniqId: String = scala.util.Random.alphanumeric.take(4).mkString)(body: Html)
@filterId = @{filter.toString.replaceAll("[^a-zA-Z0-9_]","_") + uniqId }
<div class="btn-group" @if(style.nonEmpty){style="@style"}>
  <button
      class="dropdown-toggle btn btn-default btn-sm" data-toggle="dropdown">
    @if(value.isEmpty){
      <i class="octicon octicon-gear"></i>
    } else {
      @if(prefix.nonEmpty){
        <span class="muted">@prefix:</span>
      }
      <span class="strong">@value</span>
    }
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu@if(right){ pull-right}">
    @if(filter.nonEmpty) {
      <li><input id="@filterId-input" type="text" class="form-control input-sm dropdown-filter-input" placeholder="@filter"/></li>
    }
    @body
  </ul>
</div>
@if(filter.nonEmpty) {
<script>
$(window).load(function(){
  $('#@{filterId}-input').parent().click(function(e) {
    e.stopPropagation();
  });
  $('#@{filterId}-input').keyup(function() {
    var inputVal = $('#@{filterId}-input').val();
    $.each($('#@{filterId}-input').parent().parent().find('a'), function(index, elem) {
      if ( !inputVal || !elem.text.trim() || elem.text.trim().toLowerCase().indexOf(inputVal.toLowerCase()) >=0 ) {
        $(elem).parent().show();
      } else {
        $(elem).parent().hide();
      }
    });
  });
});
</script>
}