Ag Grid andmete halduseks 2021-05-24T12:59:34+00:00

Project Description

Ag Grid andmete halduseks

Nõuded: luua Google Spreadsheetile ja MS Excelile sarnane lihtne ja kasutajasõbralik tööriist tabeliandmete haldamiseks. Eeldati järgmiste nõuete täitmist:

  • võimalus luua lõpmatu hulk erinevate veergudega  tabeleid;
  • tabeli tulbad peavad olema erinevat tüüpi, näiteks manus, kuupäev, tekst, valikuväli, lipuke jne;
  • erinevate veergudega  seotud sündmused, näiteks teiste veergude keelamine või andmete kopeerimine teistesse tabelitesse;
  • andmeid peab saama muuta mitu inimest üheaegselt;
  • ridu saab rühmitada ja laiendada;
  • erinevatel kasutajatel peavad iga tabeli jaoks olema erinevad load;
  • andmete sorteerimise ja filtreerimise võimalus.

Tulemused: vaadati läbi palju erinevaid JS tabelite lahendusi ja lõpuks langes valik Ag Gridile, kuna see suutis lehel töödelda suuri andmemahte. Test viidi läbi 100 000 rea ja 30 tulbaga tabelil. Raamatukogu töötas hästi, kuna andmeid ei salvestata lehel HTML-vormingus, vaid selles on ainult nähtavad read ja tulbad. Back-end-lahenduseks valiti Laravel 5 + Voyager back-end. 

Tabelite üheaegse redigeerimise lubamiseks seadistati Redis + Laravel Echo, mis võimaldab kasutada kanaleid. Kõik muudatused tabeli andmetes  kantakse üle kõigile  lehe kasutajatele.

Iga lehe muutmiseks ja vaatamiseks kuvatakse lehe ülemisse äärde väike avatariikoon.

Sorteerimine ja filtreerimine on võimalikud Ag Gridi «karbis»

Tabeli sätete ja kasutajaõiguste muutmiseks on loodud eraldi lehed. Igale tulbale ja rollile on eraldi load ja tänu sellele saab igale rollile määrata tulbad, mida saab muuta. Tabeli muutmise lehel saab lisada uusi veerge ning muuta nende tüüpe ja muid parameetreid. Iga veeru ja rolli jaoks on eraldi load. Tänu sellele saab iga rolli jaoks määrata, milliseid veerge nad muuta saavad. Tabeli muutmise lehel saab lisada uusi veerge ning redigeerida veergude tüüpe ja muid parameetreid. Tabeli muutmise lehel saab lisada uusi veerge ning redigeerida nende tüüpe ja muid parameetreid.