MINI Sh3ll
// GRID COMMON TYPE EXTENSIONS
// ============
$.fn.extend({
_bgAria: function (name, value)
{
return (value) ? this.attr("aria-" + name, value) : this.attr("aria-" + name);
},
_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;
};
}
OHA YOOOO