text: (function() {
    var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
  
    this.ProtectedBranchSelect = (function() {
      function ProtectedBranchSelect(currentProject) {
        this.toggleCreateNewButton = bind(this.toggleCreateNewButton, this);
        this.getProtectedBranches = bind(this.getProtectedBranches, this);
        $('.dropdown-footer').hide();
        this.dropdown = $('.js-protected-branch-select').glDropdown({
          data: this.getProtectedBranches,
          filterable: true,
          remote: false,
          search: {
            fields: ['title']
          },
          selectable: true,
          toggleLabel: function(selected) {
            if (selected && 'id' in selected) {
              return selected.title;
            } else {
              return 'Protected Branch';
            }
          },
          fieldName: 'protected_branch[name]',
          text: function(protected_branch) {
            return _.escape(protected_branch.title);
          },
          id: function(protected_branch) {
            return _.escape(protected_branch.id);
          },
          onFilter: this.toggleCreateNewButton,
          clicked: function() {
            return $('.protect-branch-btn').attr('disabled', false);
          }
        });
        $('.create-new-protected-branch').on('click', (function(_this) {
          return function(event) {
            _this.dropdown.data('glDropdown').remote.execute();
            return _this.dropdown.data('glDropdown').selectRowAtIndex(event, 0);
          };
        })(this));
      }
  
      ProtectedBranchSelect.prototype.getProtectedBranches = function(term, callback) {
        if (this.selectedBranch) {
          return callback(gon.open_branches.concat(this.selectedBranch));
        } else {
          return callback(gon.open_branches);
        }
      };
  
      ProtectedBranchSelect.prototype.toggleCreateNewButton = function(branchName) {
        this.selectedBranch = {
          title: branchName,
          id: branchName,
          text: branchName
        };
        if (branchName === '') {
          $('.protected-branch-select-footer-list').addClass('hidden');
          return $('.dropdown-footer').hide();
        } else {
          $('.create-new-protected-branch').text("Create Protected Branch: " + branchName);
          $('.protected-branch-select-footer-list').removeClass('hidden');
          return $('.dropdown-footer').show();
        }
      };
  
      return ProtectedBranchSelect;
  
    })();
  
  }).call(this);
  