/**
* @module EventView/Parts/CalendarOwner
*/
import { Parts } from './parts.js';
export { CalendarOwner };
/**
* @class
* @classdesc Gère le propriétaire de l'évènement.
* @extends Parts
* @frommodule EventView/Parts
*/
class CalendarOwner extends Parts {
/**
*
* @param {external:jQuery} $field Select qui contient les propriétaires de l'évènement
* @param {external:jQuery} $icon Icône du propriétaire
* @param {boolean} calendar_blocked Si le propriétaire est bloqué ou non
*/
constructor($field, $icon, calendar_blocked) {
super($field, Parts.MODE.change);
const blocked = 'true' === calendar_blocked || true === calendar_blocked;
if (blocked) $($field).attr('disabled', 'disabled').addClass('disabled');
else $($field).removeAttr('disabled').removeClass('disabled');
$($field).tooltip({ trigger: 'hover' });
/**
* Icône du propriétaire
* @package
* @type {external:jQuery}
*/
this._$icon = $icon;
this.onChange(null);
}
/**
* Met à jours la couleur de l'icône
* @override
* @param {string} owner Nouvelle valeur du champ
*/
onUpdate(owner) {
this._$icon
.css('color', '#' + rcmail.env.calendars[owner].color)
.css('text-shadow', '0px 0px 1px black');
}
/**
* Action qui sera appelé lorsque le champ changera de valeur.
* @param {Event} e
* @returns {Event}
* @override
*/
onChange(e) {
this.onUpdate(this._$field.val());
return e;
}
}