2 typeof define === "function" ? function (m) { define("kismet-ui-iconbar-js", m); } :
3 typeof exports === "object" ? function (m) { module.exports = m(); } :
4 function(m){ this.kismet_ui_iconbar = m(); }
11 var local_uri_prefix = "";
12 if (typeof(KISMET_URI_PREFIX) !== 'undefined')
13 local_uri_prefix = KISMET_URI_PREFIX;
15 // Flag we're still loading
16 exports.load_complete = 0;
24 href: local_uri_prefix + 'css/kismet.ui.iconbar.css'
27 /* Iconbar items are stored as a list of objects with callbacks for when they
30 var IconbarItems = new Array();
32 /* Add an iconbar item
34 * 'options' is a dictionary which must include:
36 * id: id for created object/div
37 * createCallback(div): function for populating the div
41 * priority: order priority in list
45 exports.AddIconbarItem = function(options) {
46 if (!('id' in options) ||
47 !('createCallback' in options)) {
51 if (!('priority' in options)) {
52 options['priority'] = 0;
55 options['visible'] = true;
57 IconbarItems.push(options);
60 exports.makeIconbar = function(container) {
61 var saved_state = kismet.getStorage('kismet.base.iconbar', {});
63 // Update any item status based on saved config
64 for (var ii in IconbarItems) {
65 var ibi = IconbarItems[ii];
67 if (ibi.id in saved_state) {
68 ibi.priority = saved_state[ibi.id].priority;
69 ibi.visibile = saved_state[ibi.id].visible;
76 IconbarItems.sort(function(a, b) {
77 if (a.priority < b.priority)
79 if (a.priority > b.priority)
84 // Wipe out the existing div
87 for (var ii in IconbarItems) {
88 var ibi = IconbarItems[ii];
99 container.append(div);
100 ibi.createCallback(div);
105 // We're done loading
106 exports.load_complete = 1;