mirror of
https://github.com/bpatrik/pigallery2.git
synced 2025-03-03 15:02:27 +02:00
Improving local storing handling by try-cache all setItem calls and resetting storage on failure. Fixes: #170
This commit is contained in:
parent
1cc95bb925
commit
0d2b59a412
@ -218,17 +218,18 @@ export class GalleryCacheService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// try to fit it
|
||||||
localStorage.setItem(key, JSON.stringify(directory));
|
localStorage.setItem(key, JSON.stringify(directory));
|
||||||
|
directory.directories.forEach((dir: DirectoryDTO) => {
|
||||||
|
const sub_key = GalleryCacheService.CONTENT_PREFIX + Utils.concatUrls(dir.path, dir.name);
|
||||||
|
if (localStorage.getItem(sub_key) == null) { // don't override existing
|
||||||
|
localStorage.setItem(sub_key, JSON.stringify(dir));
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.reset();
|
this.reset();
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
directory.directories.forEach((dir: DirectoryDTO) => {
|
|
||||||
const sub_key = GalleryCacheService.CONTENT_PREFIX + Utils.concatUrls(dir.path, dir.name);
|
|
||||||
if (localStorage.getItem(sub_key) == null) { // don't override existing
|
|
||||||
localStorage.setItem(sub_key, JSON.stringify(dir));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,21 +243,26 @@ export class GalleryCacheService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const directoryName = Utils.concatUrls(media.directory.path, media.directory.name);
|
try {
|
||||||
const value = localStorage.getItem(directoryName);
|
const directoryName = Utils.concatUrls(media.directory.path, media.directory.name);
|
||||||
if (value != null) {
|
const value = localStorage.getItem(directoryName);
|
||||||
const directory: DirectoryDTO = JSON.parse(value);
|
if (value != null) {
|
||||||
directory.media.forEach((p) => {
|
const directory: DirectoryDTO = JSON.parse(value);
|
||||||
if (p.name === media.name) {
|
directory.media.forEach((p) => {
|
||||||
// update data
|
if (p.name === media.name) {
|
||||||
p.metadata = media.metadata;
|
// update data
|
||||||
p.readyThumbnails = media.readyThumbnails;
|
p.metadata = media.metadata;
|
||||||
|
p.readyThumbnails = media.readyThumbnails;
|
||||||
|
|
||||||
// save changes
|
// save changes
|
||||||
localStorage.setItem(directoryName, JSON.stringify(directory));
|
localStorage.setItem(directoryName, JSON.stringify(directory));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.reset();
|
||||||
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user