mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
170 lines
4.1 KiB
JavaScript
170 lines
4.1 KiB
JavaScript
// GRID COMMON TYPE EXTENSIONS
|
|
// ============
|
|
|
|
$.fn.extend({
|
|
_bgAria: function (name, value)
|
|
{
|
|
return this.attr("aria-" + name, value);
|
|
},
|
|
|
|
_bgBusyAria: function(busy)
|
|
{
|
|
return (busy == null || busy) ?
|
|
this._bgAria("busy", "true") :
|
|
this._bgAria("busy", "false");
|
|
},
|
|
|
|
_bgRemoveAria: function (name)
|
|
{
|
|
return this.removeAttr("aria-" + name);
|
|
},
|
|
|
|
_bgEnableAria: function (enable)
|
|
{
|
|
return (enable == null || enable) ?
|
|
this.removeClass("disabled")._bgAria("disabled", "false") :
|
|
this.addClass("disabled")._bgAria("disabled", "true");
|
|
},
|
|
|
|
_bgEnableField: function (enable)
|
|
{
|
|
return (enable == null || enable) ?
|
|
this.removeAttr("disabled") :
|
|
this.attr("disabled", "disable");
|
|
},
|
|
|
|
_bgShowAria: function (show)
|
|
{
|
|
return (show == null || show) ?
|
|
this.show()._bgAria("hidden", "false") :
|
|
this.hide()._bgAria("hidden", "true");
|
|
},
|
|
|
|
_bgSelectAria: function (select)
|
|
{
|
|
return (select == null || select) ?
|
|
this.addClass("active")._bgAria("selected", "true") :
|
|
this.removeClass("active")._bgAria("selected", "false");
|
|
},
|
|
|
|
_bgId: function (id)
|
|
{
|
|
return (id) ? this.attr("id", id) : this.attr("id");
|
|
}
|
|
});
|
|
|
|
if (!String.prototype.resolve)
|
|
{
|
|
var formatter = {
|
|
"checked": function(value)
|
|
{
|
|
if (typeof value === "boolean")
|
|
{
|
|
return (value) ? "checked=\"checked\"" : "";
|
|
}
|
|
return value;
|
|
}
|
|
};
|
|
|
|
String.prototype.resolve = function (substitutes, prefixes)
|
|
{
|
|
var result = this;
|
|
$.each(substitutes, function (key, value)
|
|
{
|
|
if (value != null && typeof value !== "function")
|
|
{
|
|
if (typeof value === "object")
|
|
{
|
|
var keys = (prefixes) ? $.extend([], prefixes) : [];
|
|
keys.push(key);
|
|
result = result.resolve(value, keys) + "";
|
|
}
|
|
else
|
|
{
|
|
if (formatter && formatter[key] && typeof formatter[key] === "function")
|
|
{
|
|
value = formatter[key](value);
|
|
}
|
|
key = (prefixes) ? prefixes.join(".") + "." + key : key;
|
|
var pattern = new RegExp("\\{\\{" + key + "\\}\\}", "gm");
|
|
result = result.replace(pattern, (value.replace) ? value.replace(/\$/gi, "$") : value);
|
|
}
|
|
}
|
|
});
|
|
return result;
|
|
};
|
|
}
|
|
|
|
if (!Array.prototype.first)
|
|
{
|
|
Array.prototype.first = function (condition)
|
|
{
|
|
for (var i = 0; i < this.length; i++)
|
|
{
|
|
var item = this[i];
|
|
if (condition(item))
|
|
{
|
|
return item;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
}
|
|
|
|
if (!Array.prototype.contains)
|
|
{
|
|
Array.prototype.contains = function (condition)
|
|
{
|
|
for (var i = 0; i < this.length; i++)
|
|
{
|
|
var item = this[i];
|
|
if (condition(item))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
}
|
|
|
|
if (!Array.prototype.page)
|
|
{
|
|
Array.prototype.page = function (page, size)
|
|
{
|
|
var skip = (page - 1) * size,
|
|
end = skip + size;
|
|
return (this.length > skip) ?
|
|
(this.length > end) ? this.slice(skip, end) :
|
|
this.slice(skip) : [];
|
|
};
|
|
}
|
|
|
|
if (!Array.prototype.where)
|
|
{
|
|
Array.prototype.where = function (condition)
|
|
{
|
|
var result = [];
|
|
for (var i = 0; i < this.length; i++)
|
|
{
|
|
var item = this[i];
|
|
if (condition(item))
|
|
{
|
|
result.push(item);
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
}
|
|
|
|
if (!Array.prototype.propValues)
|
|
{
|
|
Array.prototype.propValues = function (propName)
|
|
{
|
|
var result = [];
|
|
for (var i = 0; i < this.length; i++)
|
|
{
|
|
result.push(this[i][propName]);
|
|
}
|
|
return result;
|
|
};
|
|
} |