-
Piotr Gawron authoredPiotr Gawron authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
SessionData.js 3.11 KiB
"use strict";
var SessionObjectType = require('./SessionObjectType');
var Cookies = require('js-cookie');
function SessionData(project) {
if (project === undefined) {
throw new Error("Project must be passed as an argument");
}
this.setProject(project);
}
SessionData.prototype.setProject = function(project) {
this._project = project;
};
SessionData.prototype.getProjectId = function() {
return this._project.getProjectId();
};
SessionData.prototype.getShowComments = function() {
var key = this.getKey(SessionObjectType.SHOW_COMMENT);
return Cookies.get(key) === "true";
};
SessionData.prototype.setSearchQuery = function(value) {
var key = this.getKey(SessionObjectType.SEARCH_QUERY);
Cookies.set(key, JSON.stringify(value));
};
SessionData.prototype.getSearchQuery = function() {
var key = this.getKey(SessionObjectType.SEARCH_QUERY);
var result = Cookies.get(key);
if (result !== undefined) {
result = JSON.parse(result);
}
return result;
};
SessionData.prototype.setShowComments = function(value) {
var key = this.getKey(SessionObjectType.SHOW_COMMENT);
Cookies.set(key, value + "");
};
SessionData.prototype.getSelectedBackgroundOverlay = function() {
var key = this.getKey(SessionObjectType.SELECTED_BACKGROUND_OVERLAY);
return Cookies.get(key);
};
SessionData.prototype.setSelectedBackgroundOverlay = function(value) {
var key = this.getKey(SessionObjectType.SELECTED_BACKGROUND_OVERLAY);
Cookies.set(key, value + "");
};
SessionData.prototype.getVisibleOverlays = function() {
var key = this.getKey(SessionObjectType.VISIBLE_OVERLAYS);
var value = Cookies.get(key);
if (value === undefined || value === "") {
value = [];
} else {
value = value.split(",");
}
return value;
};
SessionData.prototype.setVisibleOverlays = function(value) {
var key = this.getKey(SessionObjectType.VISIBLE_OVERLAYS);
Cookies.set(key, value + "");
};
SessionData.prototype.setZoomLevel = function(model, value) {
var key = this.getKey(SessionObjectType.ZOOM_LEVEL, [ model.getId() ]);
Cookies.set(key, value + "");
};
SessionData.prototype.getZoomLevel = function(model) {
var key = this.getKey(SessionObjectType.ZOOM_LEVEL, [ model.getId() ]);
var value = Cookies.get(key);
if (value !== undefined) {
value = parseInt(value);
}
return value;
};
SessionData.prototype.setCenter = function(model, value) {
var key = this.getKey(SessionObjectType.CENTER, [ model.getId() ]);
Cookies.set(key, value.x + "," + value.y);
};
SessionData.prototype.getCenter = function(model) {
var key = this.getKey(SessionObjectType.CENTER, [ model.getId() ]);
var value = Cookies.get(key);
if (value !== undefined) {
var tmp = value.split(",");
value = new google.maps.Point(tmp[0], tmp[1]);
}
return value;
};
SessionData.prototype.getKey = function(type, args) {
if (type === undefined) {
throw new Error("Undefined type");
}
if (args === undefined) {
args = [];
}
return type + "_" + this.getProjectId() + "_" + args.join("_");
};
module.exports = SessionData;