123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: cogadmin
- //
- // (C) Copyright IBM Corp. 2005, 2010
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- //
- //
- // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- //----------------------------------------------------------
- com.cognos.admin.ObjectFactory("com.cognos.admin.util.ClientState");
- /*
- * This is a J2HTML client state management class
- *
- *
- */
- com.cognos.admin.util.ClientState = function (fragId) {
- this.fragId = fragId;
- this.states = {};
- this.skipPersistStates = [];
- this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE] = {};
- };
- com.cognos.admin.util.ClientState.VERSION = "0.1.0";
- com.cognos.admin.util.ClientState.J2HTML_UI_STATE = "j2html-ui-state"
- com.cognos.admin.util.ClientState.SELECTED_ROW = "selectedRow";
- com.cognos.admin.util.ClientState.GROUP_ACTION_ROWS = "grpActionRows";
- com.cognos.admin.util.ClientState.BREADCRUMBS = "breadcrumbs";
- com.cognos.admin.util.ClientState.SORT = "sort";
- com.cognos.admin.util.ClientState.SCROLL_TOP = "scrollTop";
- com.cognos.admin.util.ClientState.SCROLL_LEFT = "scrollLeft";
- com.cognos.admin.util.ClientState.COGADMIN_WINDOW_STATE = "cogadminWindowState";
- com.cognos.admin.util.ClientState.prototype = {
- restoreStates : function () {
- if (com.cognos.admin.publicParam.states[this.fragId]){
- this.states = com.cognos.admin.publicParam.states[this.fragId];
- }
- },
-
- saveStates : function () {
- var isEmpty = true;
-
- for (var o in this.states) {
- if (typeof this.states[o] !== 'function') {
- if (this.states[o]){
- isEmpty = false;
- break;
- }
- }
- }
-
- if (!isEmpty) {
- if (!com.cognos.admin.publicParam.states[this.fragId])
- com.cognos.admin.publicParam.states[this.fragId] = [];
-
- com.cognos.admin.publicParam.states[this.fragId] = this.states;
- }
- },
-
- /*
- * format the "," as a seperator's string to array
- */
- formatedString : function (value){
- return value.toString().split(",");
- },
-
- // add a state param as a array
- addState : function (key,value,isUIState) {
- if (key) {
- var ret = this.formatedString(value);
- var state = isUIState?this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE]:this.states;
- if (!state[key] || state[key].length == 0){
- state[key] = ret;
- } else if (state[key] instanceof Array) {
- state[key] = _F_Array.unique(state[key].concat(ret));
- }
- this.saveStates();
- }
- },
-
- // add a state param as a single type
- setState : function (key,value,isUIState) {
- if (key) {
- var state = isUIState?this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE]:this.states;
- state[key] = value;
- this.saveStates();
- }
- },
-
- getState : function (key,isUIState) {
- var state = isUIState?this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE]:this.states;
-
- if (state[key] === undefined)
- return;
-
- return state[key];
- },
- /**
- * Remove the input value from the array, or set the value to "" for the string
- * @param {string} key
- * @param {Object} value
- * @param {Boolean} isUIState whether is a j2html_ui_state
- */
- removeState : function (key,value,isUIState) {
- var state = isUIState?this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE]:this.states;
- if (state[key]){
- if (state[key] instanceof Array){
- _F_Array.remove(state[key],value);
- } else {
- this.clearState(key);
- }
-
- this.saveStates();
- }
- },
- /**
- * Get rid of the key from the state set.
- * @param {String} key
- * @param {Boolean} isUIState
- */
- clearState : function (key,isUIState) {
- var state = isUIState?this.states[com.cognos.admin.util.ClientState.J2HTML_UI_STATE]:this.states;
-
- if (state[key]){
- if (state[key] instanceof Array){
- state[key] = [];
- } else if (typeof state[key] == "object"){
- state[key] = null;
- } else {
- state[key] = "";
- }
- this.saveStates();
- }
- },
- /**
- * remove the client state form the round trip list
- * @param {Object} skipPersistStates could be either a string (option: seperated by ",") or an array
- */
- setSkipPersistStates : function (skipPersistStates){
- if (skipPersistStates){
- if (typeof skipPersistStates == "string"){
- this.skipPersistStates = skipPersistStates.split(",");
- } else {
- this.skipPersistStates = skipPersistStates;
- }
- }
- },
-
- getSkipPersistStates : function (){
- return this.skipPersistStates;
- },
-
- clearSkipPersistStates : function () {
- var skipPersistStates = this.getSkipPersistStates();
- for (var i = 0; i < skipPersistStates.length; i++){
- this.clearState(skipPersistStates[i],true);
- }
- },
-
- getStateURL : function () {
- var str = "";
- this.clearSkipPersistStates();
- for (var o in this.states){
- //this is to filter out the expended funcitons for Array object.
- if (!(this.states[o] instanceof Function)){
- var param;
- if (typeof this.states[o] == "object"){
- param = com.cognos.admin.util.Tools.JSON.stringify(this.states[o]);
- } else {
- param = this.states[o];
- }
- str = com.cognos.admin.util.Tools.generateQueryString(str,o,param,true);
- }
- }
- return str;
- }
- };
|