\r
public class IndexModel extends BaseModel {\r
private static final Logger logger = LogManager.getLogger();\r
-\r
- // static public BasicDBObject toParamObject(Map<String, String[]> parameters) {\r
- // BasicDBObject result = null;\r
- // if (parameters != null && parameters.size() > 0) {\r
- // result = new BasicDBObject();\r
- // for (String key : parameters.keySet()) {\r
- // result.put(key, parameters.get(key)[0]);\r
- // //logger.info("{}:{}", key, parameters.get(key)[0]);\r
- // }\r
- // }\r
- // return result;\r
- // }\r
- //\r
-\r
private String page;\r
-\r
private Map<String, Object> pathMap = ListUtils.asMap("/", "searchitems", "jobs", "joblist", "missingmaterials", "missingmaterials", "newshistory",\r
"newshistory", "statistics", "statistics");\r
\r
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
Selectors.wireComponents(view, this, false);\r
Selectors.wireEventListeners(view, this);\r
- route(Executions.getCurrent().getParameter("action"), SessionUtil.getQueryString(Arrays.asList("action")));\r
+ route(Executions.getCurrent().getParameter("action"), SessionUtil.getQueryString(Arrays.asList("action")), false);\r
SessionUtil.setAttribute(IndexModel.class.getCanonicalName(), this);\r
}\r
\r
BasicDBObject h = SessionUtil.popHistory();\r
if (h == null)\r
return;\r
- route(h.getString("action"), h.getString("query"));\r
+ logger.info("Popped to client: {}", h);\r
+ route(h.getString("action"), h.getString("query"), true);\r
}\r
\r
public void pushClientHistory(String action, String query) {\r
logger.info("Pushed to client: {}", realAction);\r
}\r
\r
- public void route(String action, String query) {\r
+ public void route(String action, String query, boolean silently) {\r
String queryString = query == null ? "" : query;\r
String actionString = action == null ? "/" : action;\r
String page = (String) pathMap.get(actionString);\r
setPage(String.format("/pages/%s.zul%s", page, queryString));\r
- pushClientHistory(actionString, queryString);\r
+ if (!silently)\r
+ pushClientHistory(actionString, queryString);\r
SessionUtil.pushHistory(actionString, queryString);\r
}\r
\r
import org.zkoss.zk.ui.Sessions;\r
\r
import com.ibm.nosql.json.api.BasicDBObject;\r
+import com.ibm.nosql.json.api.QueryBuilder;\r
\r
+import user.commons.nosql.NoSQLUtils;\r
import user.jobengine.server.IJobChangedListener;\r
import user.jobengine.server.JobEngine;\r
import user.jobengine.zk.model.IndexModel;\r
\r
public class SessionUtil {\r
+ private static final String USER_NAME = "userName";\r
+ private static final String USER_SETTINGS = "userSettings";\r
private static Logger logger = LogManager.getLogger();\r
private static final String AUTH_ENABLED = "auth_enabled";\r
private static final String USERPRINCIPAL = "userPrincipal";\r
private static final String AUTH_LOCATION = "mediacube.auth.location";\r
public static final String JOBLISTENER = "joblistener";\r
public static final String MENUMODEL = "menuModel";\r
- public static final String HISTORY = "hitory";\r
+ public static final String HISTORY = "history";\r
\r
public static boolean authenticate(String account, String password) {\r
Properties cfg = getConfiguration();\r
return (UserPrincipal) getAttribute(USERPRINCIPAL);\r
}\r
\r
+ static private BasicDBObject getUserSettings() {\r
+ BasicDBObject result = (BasicDBObject) getAttribute(USER_SETTINGS);\r
+ if (result == null) {\r
+ UserPrincipal userPrincipal = getUserPrincipal();\r
+ result = (BasicDBObject) NoSQLUtils.collection(USER_SETTINGS).findOne(QueryBuilder.start(USER_NAME).is(userPrincipal.getAccount()));\r
+ if (result == null)\r
+ result = new BasicDBObject(USER_NAME, userPrincipal.getAccount());\r
+ }\r
+ return result;\r
+ }\r
+\r
static public boolean isAdmin() {\r
UserPrincipal userPrincipal = getUserPrincipal();\r
return userPrincipal != null && userPrincipal.isAdmin();\r
history.add(new BasicDBObject("action", action).append("query", query));\r
}\r
\r
+ static private void putUserSettings() {\r
+ BasicDBObject userSettings = (BasicDBObject) getAttribute(USER_SETTINGS);\r
+ if (userSettings != null)\r
+ NoSQLUtils.collection(USER_SETTINGS).save(userSettings);\r
+\r
+ }\r
+\r
static public void redirect(String path) {\r
Executions.sendRedirect(path + getQueryString());\r
}\r