Skip to content
Snippets Groups Projects
Select Git revision
  • 8ad38933dab3929acd2991daf1461945460e045c
  • main default protected
  • daxid_dev
  • base-webtop
  • kasm-sudoer
  • functionnal-poc
  • reorganisate-docker-layer
  • 3-file-browser
8 results

install-spyder-ubuntu.sh

Blame
  • LocalStorageAdapter.js 1.50 KiB
    /** */
    export default class LocalStorageAdapter {
      /** */
      constructor(annotationPageId) {
        this.annotationPageId = annotationPageId;
      }
    
      /** */
      async create(annotation) {
        const emptyAnnoPage = {
          id: this.annotationPageId,
          items: [],
          type: 'AnnotationPage',
        };
        const annotationPage = await this.all() || emptyAnnoPage;
        annotationPage.items.push(annotation);
        localStorage.setItem(this.annotationPageId, JSON.stringify(annotationPage));
        return annotationPage;
      }
    
      /** */
      async update(annotation) {
        const annotationPage = await this.all();
        if (annotationPage) {
          const currentIndex = annotationPage.items.findIndex((item) => item.id === annotation.id);
          annotationPage.items.splice(currentIndex, 1, annotation);
          localStorage.setItem(this.annotationPageId, JSON.stringify(annotationPage));
          return annotationPage;
        }
        return null;
      }
    
      /** */
      async delete(annoId) {
        const annotationPage = await this.all();
        if (annotationPage) {
          annotationPage.items = annotationPage.items.filter((item) => item.id !== annoId);
        }
        localStorage.setItem(this.annotationPageId, JSON.stringify(annotationPage));
        return annotationPage;
      }
    
      /** */
      async get(annoId) {
        const annotationPage = await this.all();
        if (annotationPage) {
          return annotationPage.items.find((item) => item.id === annoId);
        }
        return null;
      }
    
      /** */
      async all() {
        return JSON.parse(localStorage.getItem(this.annotationPageId));
      }
    }