OpenDroneMap-WebODM/app/static/app/js/classes/HistoryNav.js

56 wiersze
1.2 KiB
JavaScript

import Utils from './Utils';
const SEP = ",";
class HistoryNav{
constructor(history){
this.history = history;
}
changeQS(param, value){
this.history.replace(
this.history.location.pathname +
Utils.replaceSearchQueryParam(this.history.location, param, value) +
this.history.location.hash);
}
isValueInQSList(param, value){
let q = Utils.queryParams(this.history.location);
if (q[param]){
return q[param].split(SEP).find(v => v == value);
}else return false;
}
addToQSList(param, value){
let q = Utils.queryParams(this.history.location);
if (q[param]){
if (!this.isValueInQSList(param, value)){
this.changeQS(param, q[param] + SEP + value);
}
}else{
this.changeQS(param, value);
}
}
removeFromQSList(param, value){
let q = Utils.queryParams(this.history.location);
if (q[param]){
let parts = q[param].split(SEP);
this.changeQS(param,
parts.filter(p => p != value).join(SEP)
);
}
}
toggleQSListItem(param, value, add){
if (add){
this.addToQSList(param, value);
}else{
this.removeFromQSList(param, value);
}
}
}
export default HistoryNav;