128 lines
4 KiB
JavaScript
128 lines
4 KiB
JavaScript
(function ($) {
|
|
|
|
Drupal.admin = Drupal.admin || {};
|
|
|
|
Drupal.behaviors.stormquicktt = function (context) {
|
|
Drupal.admin.stormquickttInit();
|
|
};
|
|
|
|
Drupal.admin.stormquickttInit = function () {
|
|
$('#stormquicktt #edit-selects-projects:not(.storm-quicktt-processed)')
|
|
.addClass('storm-quicktt-processed')
|
|
.change(function () {
|
|
$('.storm-quicktt-timer').stopTime();
|
|
var id = this.value;
|
|
var x = $('#stormquicktt #edit-selects-mode')[0];
|
|
var mode = $('#stormquicktt #edit-selects-mode')[0].checked;
|
|
Drupal.admin.stormquickttInteract("startstop", id, mode);
|
|
});
|
|
$('.storm-quicktt-pause:not(.storm-quicktt-processed)')
|
|
.addClass('storm-quicktt-processed')
|
|
.click(function () {
|
|
Drupal.admin.stormquickttInteract("pause", 0, 0);
|
|
});
|
|
$('.storm-quicktt-resume:not(.storm-quicktt-processed)')
|
|
.addClass('storm-quicktt-processed')
|
|
.click(function () {
|
|
Drupal.admin.stormquickttInteract("resume", 0, 0);
|
|
});
|
|
$('#edit-storm-quicktt-note:not(.storm-quicktt-processed)')
|
|
.addClass('storm-quicktt-processed')
|
|
.bind('blur keypress', function (event) {
|
|
if (event.type == 'keypress' && event.keyCode != 13)
|
|
return;
|
|
if (this.value == '')
|
|
return;
|
|
Drupal.admin.stormquickttInteract("note", this.value, 0);
|
|
this.value = '';
|
|
$(this).focus();
|
|
if (event.type == 'keypress' && event.keyCode == 13)
|
|
return false;
|
|
});
|
|
$('.sqtt-timetracking-trigger:not(.storm-quicktt-processed)')
|
|
.addClass('storm-quicktt-processed')
|
|
.click(function () {
|
|
var info = this.getAttribute('id');
|
|
$(this).addClass('timetracking-loading');
|
|
$('.storm-quicktt-timer').stopTime();
|
|
Drupal.admin.stormquickttInteract("triggerTimetracking", info, 0, this);
|
|
});
|
|
|
|
Drupal.admin.stormquickttInitTimer();
|
|
};
|
|
|
|
Drupal.admin.stormquickttInitTimer = function () {
|
|
$('.storm-quicktt-timer').everyTime(60000, function(i) {
|
|
Drupal.admin.stormquickttInteract("update", 0, 0);
|
|
});
|
|
};
|
|
|
|
Drupal.admin.stormquickttInteract = function (_op, _nid, _mode, _context) {
|
|
$.ajax({
|
|
url: Drupal.settings.stormquicktt_url,
|
|
async: false,
|
|
global: false,
|
|
type: "POST",
|
|
data: ({
|
|
op : _op,
|
|
nid : _nid,
|
|
mode: _mode
|
|
}),
|
|
dataType: "html",
|
|
complete: function(XMLHttpRequest) {
|
|
|
|
},
|
|
success: function (answer) {
|
|
if (answer=='OK') {
|
|
switch (_op) {
|
|
case 'pause':
|
|
$('.storm-quicktt-pause').hide();
|
|
$('.storm-quicktt-resume').show();
|
|
break;
|
|
case 'resume':
|
|
$('.storm-quicktt-pause').show();
|
|
$('.storm-quicktt-resume').hide();
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
switch (_op) {
|
|
case 'update':
|
|
if (answer == '') {
|
|
//This shouldn't happen
|
|
}
|
|
else {
|
|
$('.storm-quicktt-timer').stopTime();
|
|
$('.storm-quicktt-timer').html(answer);
|
|
Drupal.admin.stormquickttInitTimer();
|
|
}
|
|
break;
|
|
case 'triggerTimetracking':
|
|
answer = Drupal.parseJson(answer);
|
|
if (answer.msg) {
|
|
$('#sdb-timetracking .content').html(answer.msg);
|
|
$('.storm-quicktt-info').html(answer.msg);
|
|
}
|
|
$("#storm-quicktt-blockform #edit-selects-projects option").removeAttr('selected');
|
|
if (answer.pid) {
|
|
$("#storm-quicktt-blockform #edit-selects-projects option[value='"+answer.pid+"']").attr('selected',true);
|
|
}
|
|
if (answer.trigger) {
|
|
$('.'+_nid).replaceWith(answer.trigger);
|
|
}
|
|
break;
|
|
default:
|
|
$('#sdb-timetracking').html(answer);
|
|
$('.storm-quicktt-info').html(answer);
|
|
break;
|
|
}
|
|
}
|
|
Drupal.attachBehaviors($('#stormquicktt'));
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
alert(XMLHttpRequest.statusText);
|
|
}
|
|
});
|
|
};
|
|
|
|
})(jQuery);
|