2 typeof define === "function" ? function (m) { define("kismet-ui-gadgets-js", m); } :
3 typeof exports === "object" ? function (m) { module.exports = m(); } :
4 function(m){ this.kismet_ui_gadgets = m(); }
11 // Flag we're still loading
12 exports.load_complete = 0;
14 var local_uri_prefix = "";
15 if (typeof(KISMET_URI_PREFIX) !== 'undefined')
16 local_uri_prefix = KISMET_URI_PREFIX;
24 href: local_uri_prefix + 'css/kismet.ui.gadgets.css'
28 var gadgets = new Array();
30 // User picked gadgets
31 var active_gadgets = new Array();
33 /* Options for gadgets:
34 * id unique id of gadget
35 * priority priority of gadget order
36 * fields *array* of fields required by this gadget, merged into the request
37 * defaultenable optional bool, if the gadget is not disabled in the user preferences,
38 * enable it by default
39 * drawfunc function called for drawing, with arguments:
40 * container - div for the widget
41 * data - data for this row
44 exports.AddGadget = function(options) {
45 if (!('id' in options)) {
46 console.log("Missing ID in gadget");
50 if (!('drawfunc' in options)) {
51 console.log("Missing drawfunc in gadget");
55 if (!('priority' in options)) {
59 if (!('defaultenable' in options)) {
60 options.defaultenable = false;
63 if (!('fields' in options)) {
67 gadgets.push(options);
69 exports.UpdateGadgets();
72 exports.UpdateGadgets = function() {
73 var newgadgets = new Array();
75 gadgets.sort(function(a, b) {
76 if (a.priority < b.priority)
78 if (a.priority > b.priority)
84 // Load the saved gadgets
85 var saved_gadgets = kismet.getStorage('kismet.base.gadgets', []);
87 // Search through the saved gadgets and populate gadgets we know about
88 saved_gadgets.every(function(e) {
93 // Find the gadget by saved id
94 var g = gadgets.find(function(gi) {
95 return (e.id === gi.id);
98 // Skip gadgets we don't know about anymore
102 // Add to the list, cloning the object
106 // Add any unknown gadgets to the list and mark their default visibility
109 gadgets.every(function(e) {
110 // Look for this ID in our active gadgets
111 var g = newgadgets.find(function(ng) {
112 return (e.id === ng.id);
115 if (g === undefined) {
121 active_gadgets = newgadgets.concat(unknowng);
123 active_gadgets.sort(function(a, b) {
124 if (a.priority < b.priority)
126 if (a.priority > b.priority)
133 var renderGadgets = function(d, t, r, m) {
137 kismet_ui.AddDeviceColumn('column_gadget', {
139 field: 'kismet.device.base.name',
140 description: 'UI gadgets',
141 renderfunc: function(d, t, r, m) {
142 renderGadgets(d, t, r, m);
150 // We're done loading
151 exports.load_complete = 1;