Commit 56584f7d authored by Carsten  Rose's avatar Carsten Rose
Browse files

Merge branch 'F13440_Save_actual_forms_pill' into 'develop'

F13440 Save activated forms pill

See merge request !408
parents ccbda057 9a6b9e41
Pipeline #6955 passed with stage
in 1 minute and 58 seconds
......@@ -35,6 +35,8 @@ var QfqNS = QfqNS || {};
this.tabs = {};
this.currentTab = this.getActiveTabFromDOM();
this.eventEmitter = new EventEmitter();
this.currentFormName = $('#' + this.tabId + ' .active a[data-toggle="tab"]')[0].hash.slice(1).split("_")[0];
this.currentRecordId = $('#' + this.tabId + ' a[data-toggle="tab"]')[0].id.split("-")[2];
// Fill this.tabs
this.fillTabInformation();
......@@ -111,7 +113,6 @@ var QfqNS = QfqNS || {};
n.BSTabs.prototype.tabShowHandler = function (event) {
n.Log.debug('Enter: BSTabs.tabShowHandler()');
this.currentTab = event.target.hash.slice(1);
n.Log.debug("BSTabs.tabShowHandler(): invoke user handler(s)");
this.eventEmitter.emitEvent('bootstrap.tab.shown', n.EventEmitter.makePayload(this, null));
this.removeDot(this.currentTab);
......
......@@ -45,7 +45,36 @@ var QfqNS = QfqNS || {};
try {
this.bsTabs = new n.BSTabs(this.settings.tabsId);
var storedFormInfos = [];
// get current state from session storage
if(sessionStorage.getItem("formInfos") !== null) {
storedFormInfos = JSON.parse(sessionStorage.getItem("formInfos"));
}
var currentForm = this.bsTabs.currentFormName;
var currentRecordId = this.bsTabs.currentRecordId;
var actualIndex = -1;
var indexNr = 0;
if(storedFormInfos.length !== 0){
if(storedFormInfos[0] !== ''){
storedFormInfos.forEach(function callback(element){
if(element === currentForm && storedFormInfos[indexNr+2] === currentRecordId){
actualIndex = indexNr;
}
indexNr++;
});
}
}
var currentState = this.settings.pageState.getPageState();
// load from sessionStorage or from path given hash if not empty
if(actualIndex !== -1 && location.hash === "") {
currentState = storedFormInfos[actualIndex+1];
}
if (currentState !== "") {
this.bsTabs.activateTab(currentState);
n.PageTitle.setSubTitle(this.bsTabs.getTabName(currentState));
......@@ -151,6 +180,53 @@ var QfqNS = QfqNS || {};
}
var currentTabId = obj.target.getCurrentTab();
n.Log.debug('Saving state: ' + currentTabId);
// Implementation save current state in session storage
var storedFormInfos = [];
if(sessionStorage.getItem("formInfos") !== null){
storedFormInfos = JSON.parse(sessionStorage.getItem("formInfos"));
}
var currentForm = obj.target.currentFormName;
var currentRecordId = obj.target.currentRecordId;
var actualIndex = -1;
var indexNr = 0;
if(storedFormInfos.length !== 0) {
if(storedFormInfos[0] !== ''){
storedFormInfos.forEach(function callback(element){
if(element === currentForm && storedFormInfos[indexNr + 2] === currentRecordId){
actualIndex = indexNr;
}
indexNr++;
});
}
}
// fill sessionStorage, there are 3 ways for filling the sessionStorage: 1.If empty - first time filling, 2.If there is anything - add it to them, 3
// 1.If array from storage is empty - fill it first time
if(storedFormInfos.length === 0){
storedFormInfos[0] = currentForm;
storedFormInfos[1] = currentTabId;
storedFormInfos[2] = currentRecordId;
// 2.If there is anything in storage but not the actual opened forms - add this new information to the existing array
}else if(actualIndex === -1) {
storedFormInfos[indexNr] = currentForm;
storedFormInfos[indexNr + 1] = currentTabId;
storedFormInfos[indexNr + 2] = currentRecordId;
// 3.If actual openend form is included in sessionStorage - only change the array values of the existing informations
}else{
storedFormInfos[actualIndex] = currentForm;
storedFormInfos[actualIndex + 1] = currentTabId;
storedFormInfos[actualIndex + 2] = currentRecordId;
}
// Set sessionStorage with customized array
sessionStorage.setItem("formInfos" , JSON.stringify(storedFormInfos));
n.PageTitle.setSubTitle(obj.target.getTabName(currentTabId));
this.settings.pageState.setPageState(currentTabId, n.PageTitle.get());
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment