%PDF- %PDF-
| Direktori : /proc/self/root/data/old/home/stash/atlassian-stash/static/feature/commits/ |
| Current File : //proc/self/root/data/old/home/stash/atlassian-stash/static/feature/commits/commits-table.js |
define('feature/commits/commits-table', [
'aui',
'jquery',
'util/events',
'widget/paged-table'
], function(
_aui,
$,
events,
PagedTable
) {
function CommitTable(getCommitsUrlBuilder, options) {
this.getCommitsUrlBuilder = getCommitsUrlBuilder;
var defaults = {
target: "#commits-table",
ajaxDataType: 'html',
tableMessageClass: 'commits-table-message',
allFetchedMessageHtml: '<p class="no-more-results">' + _aui.escapeHtml(AJS.I18n.getText('stash.web.commits.allcommitsfetched')) + '</p>',
noneFoundMessageHtml: '<h3 class="no-results entity-empty">' + _aui.escapeHtml(AJS.I18n.getText('stash.web.commits.nocommitsfetched')) + '</h3>'
};
options = $.extend({}, defaults, options);
PagedTable.call(this, options);
this.$spinner.addClass('commits-table-spinner');
}
$.extend(CommitTable.prototype, PagedTable.prototype);
CommitTable.prototype.buildUrl = function (start, limit) {
return this.getCommitsUrlBuilder()
.withParams({
start : start,
limit : limit,
contents: ''
}).build();
};
CommitTable.prototype.onDataLoaded = function(start, limit, data) {
if (typeof data === 'string') {
// real ajax request
data = this.createDataFromJQuery(start, limit, $(data));
}
return PagedTable.prototype.onDataLoaded.call(this, start, limit, data);
};
CommitTable.prototype.attachNewContent = function (data, attachmentMethod) {
PagedTable.prototype.attachNewContent.call(this, data, attachmentMethod);
events.trigger('stash.widget.commitsTable.contentAdded', this, data);
};
CommitTable.prototype.handleNewRows = function (data, attachmentMethod) {
this.$table.show().children("tbody")[attachmentMethod !== 'html' ? attachmentMethod : 'append'](data.values);
};
CommitTable.prototype.focusInitialRow = function() {
this.$table.find("tbody tr.commit-row:first").addClass("focused-commit");
};
CommitTable.prototype.initShortcuts = function() {
var self = this,
sel = this.$table.selector,
openItemDisabled = false,
options = {
"focusedClass": "focused-commit",
"wrapAround": false,
"escToCancel": false
},
focusedRowSelector = sel + " .commit-row." + options.focusedClass,
rowSelector = focusedRowSelector + ", " + //Always include the currently selected element, even if it's a filtered merge row
sel + ".show-merges .commit-row, " + //When not filtering merges, include every row
sel + ":not(.show-merges) .commit-row:not(.merge)"; //When filtering merges, don't include merge rows
this._onDisableOpenItemHandler = function(){
openItemDisabled = true;
};
this._onEnableOpenItemHandler = function(){
openItemDisabled = false;
};
events.on('stash.keyboard.shortcuts.disableOpenItemHandler', this._onDisableOpenItemHandler);
events.on('stash.keyboard.shortcuts.enableOpenItemHandler', this._onEnableOpenItemHandler);
this.bindMoveToNextHandler = function(keys) {
(this.moveToNextItem ? this : _aui.whenIType(keys)).moveToNextItem(rowSelector, options).execute(function() {
if ($(rowSelector).last().hasClass(options.focusedClass)) {
window.scrollTo(0, document.documentElement.scrollHeight);
}
});
};
this.bindMoveToPreviousHandler = function(keys) {
(this.moveToPrevItem ? this : _aui.whenIType(keys)).moveToPrevItem(rowSelector, options);
};
this.bindOpenItemHandler = function(keys) {
(this.execute ? this : _aui.whenIType(keys)).execute(function() {
if (!openItemDisabled) {
var $focusedItem = _aui.$(focusedRowSelector);
if ($focusedItem.length) {
window.location.href = $focusedItem.find('td.changeset a').attr('href');
}
}
});
};
this.bindToggleMergesHandler = function(keys) {
(this.execute ? this : _aui.whenIType(keys)).execute(function() {
self.$table.toggleClass("show-merges");
});
};
PagedTable.prototype.initShortcuts.call(this);
};
CommitTable.prototype.resetShortcuts = function() {
PagedTable.prototype.resetShortcuts.call(this);
events.off('stash.keyboard.shortcuts.disableOpenItemHandler', this._onDisableOpenItemHandler);
events.off('stash.keyboard.shortcuts.enableOpenItemHandler', this._onEnableOpenItemHandler);
};
return CommitTable;
});