You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
2.0 KiB

/* (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
*
* All Rights Reserved. See copyright.txt for details and a complete list of authors.
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
*
* $Id$
*
* Support for client side iconsets
*/
(function ($) {
/**
* Get the element object for an icon depending on the current iconset
*
* @param name {string} Name of the icon as defined in the iconset
* @returns {*|HTMLElement}
*/
$.fn.getIcon = function (name) {
var icon = jqueryTiki.iconset.icons[name],
$output = $(), attr = "";
if (! icon) {
if (jqueryTiki.iconset.defaults.indexOf(name) > -1) {
icon = { id: name };
}
}
if (icon) {
icon.tag = icon.tag || jqueryTiki.iconset.tag;
icon.prepend = icon.prepend || jqueryTiki.iconset.prepend;
icon.append = icon.append || jqueryTiki.iconset.append;
$output = $("<" + icon.tag + ">");
attr = icon.prepend + icon.id + icon.append;
if (icon.tag === "img") {
$output.attr("src", attr);
$output = $("<span>")
.addClass("icon")
.addClass("icon-" + name)
.append($output);
} else {
$output.addClass(attr)
.addClass("icon")
.addClass("icon-" + name);
}
} else {
$output = $().getIcon("warning");
console.log("iconset: icon not found:" + name);
}
return $output;
};
/**
* Change an existing icon's icon
* Could be a span for a font-icon or an img for legacy
*
* @param name string Name of the icon as defined in the iconset
*
*/
$.fn.setIcon = function(name) {
return $(this)
.replaceWith(
$(this).getIcon(name)
);
}
})(jQuery);