Files
karma/assets/static/grid.js
2017-07-29 13:48:36 -07:00

74 lines
1.4 KiB
JavaScript

"use strict";
const Masonry = require("masonry-layout");
const jQueryBridget = require("jquery-bridget");
const $ = require("jquery");
const config = require("./config");
var selectors = {
alerts: "#alerts",
incident: ".incident",
gridSizer: ".grid-sizer",
};
var grid;
function init() {
jQueryBridget( "masonry", Masonry, $ );
grid = $(selectors.alerts).masonry({
itemSelector: selectors.incident,
columnWidth: selectors.gridSizer,
percentPosition: true,
transitionDuration: "0.4s",
hiddenStyle: {
opacity: 0
},
visibleStyle: {
opacity: 1
}
});
}
function clear() {
grid.masonry("remove", $(selectors.incident));
$(selectors.incident).remove();
}
function redraw() {
grid.masonry("layout");
}
function remove(elem) {
grid.masonry("remove", elem);
}
function append(elem) {
if (config.getOption("appendtop").Get()) {
grid.prepend(elem).masonry("prepended", elem);
} else {
grid.append(elem).masonry("appended", elem);
}
}
function items() {
return grid.masonry("getItemElements");
}
function hide() {
$(selectors.alerts).hide();
}
function show() {
$(selectors.alerts).show();
}
exports.init = init;
exports.clear = clear;
exports.redraw = redraw;
exports.hide = hide;
exports.show = show;
exports.append = append;
exports.remove = remove;
exports.items = items;