UNPKG

kibana-with-account

Version:

kibana-with-account is develop based kibana project

45 lines (36 loc) 1.27 kB
define(function (require) { var modules = require('ui/modules'); var _ = require('lodash'); modules.get('kibana/persisted_log') .factory('PersistedLog', function ($window, localStorage) { function PersistedLog(name, options) { options = options || {}; this.name = name; this.maxLength = parseInt(options.maxLength, 10); this.filterDuplicates = options.filterDuplicates || false; this.items = localStorage.get(this.name) || []; if (!isNaN(this.maxLength)) this.items = _.take(this.items, this.maxLength); } PersistedLog.prototype.add = function (val) { if (val == null) { return this.items; } // remove any matching items from the stack if option is set if (this.filterDuplicates) { _.remove(this.items, function (item) { return _.isEqual(item, val); }); } this.items.unshift(val); // if maxLength is set, truncate the stack if (!isNaN(this.maxLength)) this.items = _.take(this.items, this.maxLength); // persist the stack localStorage.set(this.name, this.items); return this.items; }; PersistedLog.prototype.get = function () { return this.items; }; return PersistedLog; }); });