Files
server/usr/share/psa-horde/imp/js/flagprefs.js
2026-01-07 20:52:11 +01:00

84 lines
2.2 KiB
JavaScript

/**
* Managing message flags.
*
* @author Michael Slusarz <slusarz@horde.org>
* @copyright 2014-2015 Horde LLC
* @license GPL-2 (http://www.horde.org/licenses/gpl)
*/
var ImpFlagPrefs = {
// Variables set by other code: confirm_delete, new_prompt
addFlag: function()
{
var category = window.prompt(this.new_prompt, '');
if (category) {
this._sendData('add', category);
}
},
_sendData: function(a, d)
{
$('flag_action').setValue(a);
$('flag_data').setValue(d);
$('prefs').submit();
},
changeHandler: function(e, elt)
{
if (elt.identify().startsWith('bg_')) {
elt.setStyle({ background: elt.getValue() });
}
},
clickHandler: function(e)
{
var elt = e.element(), elt2;
if (elt.readAttribute('id') == 'new_button') {
this.addFlag();
} else if (elt.hasClassName('flagcolorpicker')) {
elt2 = elt.previous('INPUT');
new ColorPicker({
color: $F(elt2),
draggable: true,
offsetParent: elt,
resizable: true,
update: [
[ elt2, 'value' ],
[ elt2, 'background' ]
]
});
e.memo.stop();
} else if (elt.hasClassName('flagdelete')) {
if (window.confirm(this.confirm_delete)) {
this._sendData('delete', elt.previous('INPUT').readAttribute('id'));
}
e.memo.stop();
}
},
resetHandler: function()
{
$('prefs').getInputs('text').each(function(i) {
if (i.readAttribute('id').startsWith('color_')) {
i.setStyle({ backgroundColor: $F(i) });
}
});
},
onDomLoad: function()
{
HordeCore.initHandler('click');
$('prefs').observe('reset', function() {
this.resetHandler.delay(0.1);
}.bind(this));
}
};
document.observe('dom:loaded', ImpFlagPrefs.onDomLoad.bind(ImpFlagPrefs));
document.observe('HordeCore:click', ImpFlagPrefs.clickHandler.bindAsEventListener(ImpFlagPrefs));
document.on('change', 'INPUT', ImpFlagPrefs.changeHandler.bind(ImpFlagPrefs));