mirror of https://github.com/portainer/portainer
feat(datatable): save text filters in session storage (#4741)
* feat(datatable): save text filters in session storage * refactor(session): as jsdoc commentspull/4414/merge
parent
59faec45ce
commit
158bdae10e
|
@ -1,3 +1,5 @@
|
||||||
|
import { clear as clearSessionStorage } from './session-storage';
|
||||||
|
|
||||||
angular.module('portainer.app').factory('Authentication', [
|
angular.module('portainer.app').factory('Authentication', [
|
||||||
'$async',
|
'$async',
|
||||||
'$state',
|
'$state',
|
||||||
|
@ -38,6 +40,7 @@ angular.module('portainer.app').factory('Authentication', [
|
||||||
await Auth.logout().$promise;
|
await Auth.logout().$promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clearSessionStorage();
|
||||||
StateManager.clean();
|
StateManager.clean();
|
||||||
EndpointProvider.clean();
|
EndpointProvider.clean();
|
||||||
LocalStorage.cleanAuthData();
|
LocalStorage.cleanAuthData();
|
||||||
|
|
|
@ -1,70 +1,88 @@
|
||||||
angular.module('portainer.app').factory('DatatableService', [
|
import angular from 'angular';
|
||||||
'LocalStorage',
|
|
||||||
function DatatableServiceFactory(LocalStorage) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var service = {};
|
import * as sessionStorage from './session-storage';
|
||||||
|
|
||||||
service.setDataTableSettings = function (key, settings) {
|
angular.module('portainer.app').factory('DatatableService', DatatableServiceFactory);
|
||||||
|
|
||||||
|
const DATATABLE_PREFIX = 'datatable_';
|
||||||
|
const TEXT_FILTER_KEY_PREFIX = `${DATATABLE_PREFIX}text_filter_`;
|
||||||
|
|
||||||
|
/* @ngInject */
|
||||||
|
function DatatableServiceFactory(LocalStorage) {
|
||||||
|
return {
|
||||||
|
setDataTableSettings,
|
||||||
|
getDataTableSettings,
|
||||||
|
setDataTableTextFilters,
|
||||||
|
getDataTableTextFilters,
|
||||||
|
setDataTableFilters,
|
||||||
|
getDataTableFilters,
|
||||||
|
getDataTableOrder,
|
||||||
|
setDataTableOrder,
|
||||||
|
setDataTableExpandedItems,
|
||||||
|
setColumnVisibilitySettings,
|
||||||
|
getDataTableExpandedItems,
|
||||||
|
setDataTableSelectedItems,
|
||||||
|
getDataTableSelectedItems,
|
||||||
|
getColumnVisibilitySettings,
|
||||||
|
};
|
||||||
|
|
||||||
|
function setDataTableSettings(key, settings) {
|
||||||
LocalStorage.storeDataTableSettings(key, settings);
|
LocalStorage.storeDataTableSettings(key, settings);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableSettings = function (key) {
|
function getDataTableSettings(key) {
|
||||||
return LocalStorage.getDataTableSettings(key);
|
return LocalStorage.getDataTableSettings(key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setDataTableTextFilters = function (key, filters) {
|
function setDataTableTextFilters(key, filters) {
|
||||||
LocalStorage.storeDataTableTextFilters(key, filters);
|
sessionStorage.save(TEXT_FILTER_KEY_PREFIX + key, filters);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableTextFilters = function (key) {
|
function getDataTableTextFilters(key) {
|
||||||
return LocalStorage.getDataTableTextFilters(key);
|
return sessionStorage.get(TEXT_FILTER_KEY_PREFIX + key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setDataTableFilters = function (key, filters) {
|
function setDataTableFilters(key, filters) {
|
||||||
LocalStorage.storeDataTableFilters(key, filters);
|
LocalStorage.storeDataTableFilters(key, filters);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableFilters = function (key) {
|
function getDataTableFilters(key) {
|
||||||
return LocalStorage.getDataTableFilters(key);
|
return LocalStorage.getDataTableFilters(key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableOrder = function (key) {
|
function getDataTableOrder(key) {
|
||||||
return LocalStorage.getDataTableOrder(key);
|
return LocalStorage.getDataTableOrder(key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setDataTableOrder = function (key, orderBy, reverse) {
|
function setDataTableOrder(key, orderBy, reverse) {
|
||||||
var filter = {
|
var filter = {
|
||||||
orderBy: orderBy,
|
orderBy: orderBy,
|
||||||
reverse: reverse,
|
reverse: reverse,
|
||||||
};
|
};
|
||||||
LocalStorage.storeDataTableOrder(key, filter);
|
LocalStorage.storeDataTableOrder(key, filter);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setDataTableExpandedItems = function (key, expandedItems) {
|
function setDataTableExpandedItems(key, expandedItems) {
|
||||||
LocalStorage.storeDataTableExpandedItems(key, expandedItems);
|
LocalStorage.storeDataTableExpandedItems(key, expandedItems);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setColumnVisibilitySettings = function (key, columnVisibility) {
|
function setColumnVisibilitySettings(key, columnVisibility) {
|
||||||
LocalStorage.storeColumnVisibilitySettings(key, columnVisibility);
|
LocalStorage.storeColumnVisibilitySettings(key, columnVisibility);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableExpandedItems = function (key) {
|
function getDataTableExpandedItems(key) {
|
||||||
return LocalStorage.getDataTableExpandedItems(key);
|
return LocalStorage.getDataTableExpandedItems(key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.setDataTableSelectedItems = function (key, selectedItems) {
|
function setDataTableSelectedItems(key, selectedItems) {
|
||||||
LocalStorage.storeDataTableSelectedItems(key, selectedItems);
|
LocalStorage.storeDataTableSelectedItems(key, selectedItems);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getDataTableSelectedItems = function (key) {
|
function getDataTableSelectedItems(key) {
|
||||||
return LocalStorage.getDataTableSelectedItems(key);
|
return LocalStorage.getDataTableSelectedItems(key);
|
||||||
};
|
}
|
||||||
|
|
||||||
service.getColumnVisibilitySettings = function (key) {
|
function getColumnVisibilitySettings(key) {
|
||||||
return LocalStorage.getColumnVisibilitySettings(key);
|
return LocalStorage.getColumnVisibilitySettings(key);
|
||||||
};
|
}
|
||||||
|
}
|
||||||
return service;
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/**
|
||||||
|
* clears the sessionStorage
|
||||||
|
*/
|
||||||
|
export function clear() {
|
||||||
|
sessionStorage.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* stores `value` as string in `sessionStorage[key]`
|
||||||
|
*
|
||||||
|
* @param {string} key the key to store value at
|
||||||
|
* @param {any} value the value to store - will be stringified using JSON.stringify
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export function save(key, value) {
|
||||||
|
sessionStorage.setItem(key, JSON.stringify(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get parses the value stored in sessionStorage[key], if it's not available returns undefined
|
||||||
|
*
|
||||||
|
* @param {string} key
|
||||||
|
*/
|
||||||
|
export function get(key) {
|
||||||
|
try {
|
||||||
|
const value = sessionStorage.getItem(key);
|
||||||
|
return JSON.parse(value);
|
||||||
|
} catch (e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue