bez.ctl.task = function() {
jQuery('.bez_commcause_delete_prompt').click('on', function (event) {
if (!window.confirm(LANG.plugins.bez.remove_confirm)) {
event.preventDefault();
}
});
var $task_form = jQuery('.bez_task_form');
if ($task_form.length > 0) {
//date picker
jQuery("input[name=plan_date]").datepicker({
dateFormat: "yy-mm-dd"
});
if (jQuery("input[name=all_day_event]").is(":checked")) {
jQuery('#task_datapair').hide();
}
jQuery("input[name=all_day_event]").on('change', function() {
if (jQuery(this).is(":checked")) {
jQuery('#task_datapair').hide();
} else {
jQuery('#task_datapair').show();
}
});
//time picker
jQuery('#task_datapair .time').timepicker({
'showDuration': true,
'timeFormat': 'H:i'
});
var timeDatepair = new Datepair(jQuery('#task_datapair').get(0));
bez.rich_text_editor($task_form.find('textarea'), $task_form.find('.bez_toolbar'));
}
if (jQuery('#reason').length > 0) {
jQuery('#no_evaluation').on('change', function() {
if (jQuery(this).prop('checked') === true) {
jQuery('#reason').prop('disabled', true).hide();
jQuery('.bez_reason_toolbar').hide();
} else {
jQuery('#reason').prop('disabled', false).show();
jQuery('.bez_reason_toolbar').show();
}
});
bez.rich_text_editor(jQuery('#reason'), jQuery('.bez_reason_toolbar'));
}
if (jQuery('.bez_metaform').length > 0) {
var tooltips = jQuery('.bez_metaform').find("input, select").tooltip({
position: {
my: "left top",
at: "right+5 top-5",
collision: "none"
}
});
jQuery.validate({
form: '.bez_metaform',
inlineErrorMessageCallback: function($input, errorMessage, config) {
if ($input.tooltip("instance") === undefined) {
return false;
}
if (errorMessage) {
//customDisplayInlineErrorMessage($input, errorMessage);
$input.attr('title', errorMessage);
$input.tooltip("open");
} else {
//customRemoveInlineError($input);
$input.tooltip("disable");
}
return false; // prevent default behaviour
}
});
jQuery("input[name=date], input[name=close_date]").datepicker({
dateFormat: "yy-mm-dd"
});
}
var $bez_comment_form = jQuery('.bez_comment_form');
if ($bez_comment_form.length > 0) {
//textareas
var $textarea = $bez_comment_form.find("textarea");
var $do_button = $bez_comment_form.find("button[value=task_do]");
var $reopen_button = $bez_comment_form.find("button[value=task_reopen]");
var $header = $bez_comment_form.find(".bez_toolbar");
bez.rich_text_editor($textarea, $header);
}
//tooltips
jQuery(document).tooltip({
items: '#issue_participants a[title]',
position: {
my: "left top+15",
at: "left bottom",
collision: "flipfit"
},
content: function() {
var $this = jQuery(this),
name = $this.find('.bez_name').text(),
content = '
'+name+'
';
$this.find('.bez_awesome').each(function() {
var $this = jQuery(this);
content += ''+$this.get(0).outerHTML+' '+$this.attr('title')+'
';
});
return content;
}
});
jQuery("#plugin__bez_do_task_button").click(function() {
"use strict";
jQuery("button[value=task_do], button[value=task_reopen]").effect("highlight");
});
jQuery('#issue_participants .participant_remove').hide().click('on', function (event) {
if (!window.confirm(LANG.plugins.bez.remove_confirm)) {
event.preventDefault();
}
});
jQuery('#issue_participants li').hover(
function() {
"use strict";
jQuery(this).find('.participant_remove').show();
},
function() {
"use strict";
jQuery(this).find('.participant_remove').hide();
}
);
//INVITE USERS
jQuery.widget( "custom.inviteUsersCombobox", {
_create: function() {
this.wrapper = jQuery( "" )
.addClass( "custom-inviteUsersCombobox" )
.insertAfter( this.element );
this.element.hide();
this._createAutocomplete();
this._createShowAllButton();
},
_createAutocomplete: function() {
var selected = this.element.children( ":selected" ),
value = selected.val() ? selected.text() : "";
this.input = jQuery( "" )
.appendTo( this.wrapper )
.val( value )
.attr( "title", "" )
.addClass( "custom-inviteUsersCombobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" )
.autocomplete({
delay: 0,
minLength: 0,
source: jQuery.proxy( this, "_source" )
})
.tooltip({
classes: {
"ui-tooltip": "ui-state-highlight"
}
});
this._on( this.input, {
autocompleteselect: function( event, ui ) {
ui.item.option.selected = true;
this._trigger( "select", event, {
item: ui.item.option
});
},
autocompletechange: "_removeIfInvalid"
});
},
_createShowAllButton: function() {
var input = this.input,
wasOpen = false;
jQuery( "" )
.attr( "tabIndex", -1 )
.attr( "title", LANG.plugins.bez.combobox_show_all_items )
.tooltip()
.appendTo( this.wrapper )
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass( "ui-corner-all" )
.addClass( "custom-inviteUsersCombobox-toggle ui-corner-right" )
.on( "mousedown", function() {
wasOpen = input.autocomplete( "widget" ).is( ":visible" );
})
.on( "click", function() {
input.trigger( "focus" );
// Close if already visible
if ( wasOpen ) {
return;
}
// Pass empty string as value to search for, displaying all results
input.autocomplete( "search", "" );
});
},
_source: function( request, response ) {
var matcher = new RegExp( jQuery.ui.autocomplete.escapeRegex(request.term), "i" );
response( this.element.children( "option" ).map(function() {
var text = jQuery( this ).text();
if ( this.value && ( !request.term || matcher.test(text) ) ) {
return {
label: text,
value: text,
option: this
};
}
}) );
},
_removeIfInvalid: function( event, ui ) {
// Selected an item, nothing to do
if ( ui.item ) {
return;
}
// Search for a match (case-insensitive)
var value = this.input.val(),
valueLowerCase = value.toLowerCase(),
valid = false;
this.element.children( "option" ).each(function() {
if ( jQuery( this ).text().toLowerCase() === valueLowerCase ) {
this.selected = valid = true;
return false;
}
});
// Found a match, nothing to do
if ( valid ) {
return;
}
// Remove invalid value
this.input
.val( "" )
.attr( "title", value + " " + LANG.plugins.bez.combobox_did_not_match )
.tooltip( "open" );
this.element.val( "" );
this._delay(function() {
this.input.tooltip( "close" ).attr( "title", "" );
}, 2500 );
this.input.autocomplete( "instance" ).term = "";
},
_destroy: function() {
this.wrapper.remove();
this.element.show();
}
});
jQuery( "#bez_invite_users select" ).inviteUsersCombobox();
//INVITE
if (jQuery('#plugin__bez_task_pin_form').length > 0) {
var $form = jQuery('#plugin__bez_task_pin_form'),
$label = $form.find('label'),
$org_button = $form.find('#plugin__bez_pin_to_the_issue');
//this button is hidden by default
$label.find('button').show();
//hide entire form
$label.hide();
$org_button.click(function (e) {
e.preventDefault();
jQuery(this).hide();
$label.show();
})
}
var $contentTextarea = jQuery('.bez_comment textarea[name=content]');
if ($contentTextarea.length > 0) {
var $doTaskButton = jQuery('button[name=fn][value=task_do]'),
$addCommentButton = jQuery('button[name=fn][value=comment_add]');
$contentTextarea.on('keyup', function () {
if ($contentTextarea.val() === '') {
$doTaskButton.html(LANG.plugins.bez.close_without_comment);
$addCommentButton.hide();
} else {
$doTaskButton.html(LANG.plugins.bez.close_with_comment);
$addCommentButton.show();
}
});
}
};