impression_store.ts 1023 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. ///<reference path="../../headers/common.d.ts" />
  2. import store from 'app/core/store';
  3. import _ from 'lodash';
  4. export class ImpressionsStore {
  5. constructor() {}
  6. addDashboardImpression(impression) {
  7. var impressions = [];
  8. if (store.exists("dashboard_impressions")) {
  9. impressions = JSON.parse(store.get("dashboard_impressions"));
  10. if (!_.isArray(impressions)) {
  11. impressions = [];
  12. }
  13. }
  14. impressions = impressions.filter((imp) => {
  15. return impression.slug !== imp.slug;
  16. });
  17. impressions.unshift({
  18. title: impression.title,
  19. slug: impression.slug,
  20. orgId: impression.orgId,
  21. type: impression.type
  22. });
  23. if (impressions.length > 20) {
  24. impressions.shift();
  25. }
  26. store.set("dashboard_impressions", JSON.stringify(impressions));
  27. }
  28. getDashboardOpened() {
  29. var impressions = store.get("dashboard_impressions");
  30. return JSON.parse(impressions || "[]");
  31. }
  32. }
  33. var impressions = new ImpressionsStore();
  34. export {
  35. impressions
  36. };