This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/modules/storm/stormquicktt/stormquicktt.js

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);