Files
iTop/js/selectize/plugin_combodo_add_button.js
2023-03-17 18:28:47 +01:00

60 lines
1.5 KiB
JavaScript

/*
* Copyright (C) 2013-2023 Combodo SARL
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*/
Selectize.define("combodo_add_button", function (aOptions) {
// Selectize instance
let oSelf = this;
// Plugin options
aOptions = $.extend({
title: "Add Option",
className: "selectize-add-option",
label: "+",
html: function () {
return (
'<a class="' + this.className + ' fas fa-plus" title="' + this.title + '"></a>'
);
},
},
aOptions
);
// Override setup function
oSelf.setup = (function () {
let oOriginal = oSelf.setup;
return function () {
oOriginal.apply(oSelf, arguments);
oSelf.$buttonAdd = $(aOptions.html());
oSelf.$wrapper.append(oSelf.$buttonAdd);
if(oSelf.settings.hasOwnProperty('onAdd')) {
oSelf.on('add', oSelf.settings['onAdd']);
oSelf.$buttonAdd.on('click', function(){
oSelf.trigger( "add");
});
}
else{
oSelf.$buttonAdd.css({
opacity: .5,
cursor: 'default'
});
}
};
})();
});