extracted methods

This commit is contained in:
Hauke Klement
2015-03-03 13:14:57 +01:00
parent f83474c0ed
commit 701b5623af
2 changed files with 32 additions and 11 deletions

View File

@ -1,3 +1,7 @@
Array.prototype.includes = function(element) {
return this.indexOf(element) !== -1;
};
$(function() { $(function() {
var ANIMATION_DURATION = 500; var ANIMATION_DURATION = 500;

View File

@ -284,6 +284,26 @@ $(function() {
$('#start-over').on('click', confirmReset); $('#start-over').on('click', confirmReset);
}; };
var isActiveFileExecutable = function() {
return 'executable' in active_frame.data();
};
var isActiveFileRenderable = function() {
return 'renderable' in active_frame.data();
};
var isActiveFileRunnable = function() {
return isActiveFileExecutable() && ['main_file', 'user_defined_file'].includes(active_frame.data('role'));
};
var isActiveFileStoppable = function() {
return isActiveFileRunnable() && running;
};
var isActiveFileTestable = function() {
return isActiveFileExecutable() && ['teacher_defined_test', 'user_defined_test'].includes(active_frame.data('role'));
};
var populatePanel = function(panel, result, index) { var populatePanel = function(panel, result, index) {
panel.removeClass('panel-default').addClass(getPanelClass(result)); panel.removeClass('panel-default').addClass(getPanelClass(result));
panel.find('.panel-title .filename').text(result.filename); panel.find('.panel-title .filename').text(result.filename);
@ -578,18 +598,15 @@ $(function() {
}; };
var toggleButtonStates = function() { var toggleButtonStates = function() {
var is_renderable = active_frame.data('renderable') !== undefined;
var is_runnable = active_frame.data('executable') !== undefined && _.contains(['main_file', 'user_defined_file'], active_frame.data('role'));
var is_testable = active_frame.data('executable') !== undefined && _.contains(['teacher_defined_test', 'user_defined_test'], active_frame.data('role'));
$('#destroy-file').prop('disabled', active_frame.data('role') !== 'user_defined_file'); $('#destroy-file').prop('disabled', active_frame.data('role') !== 'user_defined_file');
$('#dropdown-render').toggleClass('disabled', !is_renderable); $('#dropdown-render').toggleClass('disabled', !isActiveFileRenderable());
$('#dropdown-run').toggleClass('disabled', !(is_runnable && !running)); $('#dropdown-run').toggleClass('disabled', !isActiveFileRunnable() || running);
$('#dropdown-stop').toggleClass('disabled', !(is_runnable && running)); $('#dropdown-stop').toggleClass('disabled', !isActiveFileStoppable());
$('#dropdown-test').toggleClass('disabled', !is_testable); $('#dropdown-test').toggleClass('disabled', !isActiveFileTestable());
$('#render').toggle(is_renderable); $('#render').toggle(isActiveFileRenderable());
$('#run').toggle(is_runnable && !running); $('#run').toggle(isActiveFileRunnable() && !running);
$('#stop').toggle(is_runnable && running); $('#stop').toggle(isActiveFileStoppable());
$('#test').toggle(is_testable); $('#test').toggle(isActiveFileTestable());
}; };
if ($('#editor').isPresent()) { if ($('#editor').isPresent()) {