项目作者: web-widgets

项目描述 :
Data proxy between client side Gantt widget and a server side API
高级语言: TypeScript
项目地址: git://github.com/web-widgets/gantt-data-provider.git
创建时间: 2021-03-11T10:36:52Z
项目社区:https://github.com/web-widgets/gantt-data-provider

开源协议:

下载


Gantt Data Provider

Data proxy between client side Gantt widget and a server side API

NPM package

How to use

REST backend

  1. import { RestDataProvider } from "@dhtmlx/gantt-data-provider";
  2. // create an instance
  3. const server = new RestDataProvider(url); // url = https://some.com
  4. // get data
  5. server.getData().then(({ tasks, links }) => {
  6. console.log(tasks, links);
  7. });
  8. // save changes
  9. server.saveData({
  10. action: "add-task", /* add-task|update-task|delete-task|add-link|delete-link */
  11. obj: { /* GanttItem/LinkItem */ }
  12. }).then(res => {
  13. console.log(res.id);
  14. })

Backend URLs

  • tasks

    • add-task POST: {url}/tasks
    • update-task PUT: {url}/tasks/{id}
    • delete-task DELETE: {url}/tasks/{id}
  • links

    • add-link POST: {url}/links
    • update-link PUT: {url}/links/{id}
    • delete-link DELETE: {url}/links/{id}

Backend responses

For all actions client expect that server will respond with valid json object.
Returning non-json response will be processed as an error.

For add-link/add-task actions, client expect that response will contain the server side ID (string or number) for the newly added item

  1. { id:"some" }

Data back propagation

It possible to update data after saving. To do so, you need to init the provider like next

  1. // create an instance
  2. const server = new RestDataProvider(url, {
  3. task: res => updateTask(res),
  4. link: res => updateLink(res)
  5. });

after add-link/add-task/update-link/update-task actions, the updateTask/updateLink handlers will be called with response details, so the saved task/link can be updated ( or you can trigger any other custom after-save processing )