1.1.2 • Published 10 months ago

@pineapplegr/fm-bryntum-driver v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

Fm-Bryntum-Driver

Overview

fmBryntumDriver is a JavaScript library designed to provide seamless integration with Bryntum components. The library is compiled and bundled into dist/index.js.

Installation

To install the library, you can use npm or yarn:

npm install @pineapplegr/fm-bryntum-driver

or

yarn add @pineapplegr/fm-bryntum-driver

Usage

To use the library in your project, import it as follows:

import { ... } from '@pineapplegr/fm-bryntum-driver';

The module uses environment variables for some constansts. Adding a .env file will change the values to ones you want

  • Development data path.
    • VITE_FMBRYNTUM_DRIVER_DEV_DATA_PATH
    • Default value: /data/data.json
  • FMGofer script name
    • VITE_FMBRYNTUM_DRIVER_FMGOFER_SCRIPT_NAME
    • Default value: FMGofer

Features

  • Component Integration: Easily integrate Bryntum components into your FileMaker application.
  • FileMaker-Bryntum Data Integration: Simplify the way data is synced with FileMaker

Example

Here is a basic example of how to use fmBryntumDriver:

import { fetchProjectData } from '@pineapplegr/fm-bryntum-driver';
import { getFmProps } from '/fm/fmProps.js'

async function initializeScheduler() {
    // Get FM Props
    const props = getFmProps();
    window._UpdatePhantomIds = updatePhantomIds;
    const projectData = await fetchProjectData();

    const myScheduler = new SchedulerPro({
        appendTo: 'app',
        startDate: '2024-03-11T06:00',
        endDate: '2024-03-11T20:00',
        project: {
            autoLoad: true,
            addConstraintOnDateSet: false,
            eventStore: {
                useRawData: false,
            },
        },
    });
    // Called for data changes that are persistable
    myScheduler.project.on({
        hasChanges() {
            let { changes } = this;

            // Remove resourceTimeRanges from the changes if it exists
            if (changes.resourceTimeRanges) {
                delete changes.resourceTimeRanges;
            }

            // If there are other changes left, call updateProjectData
            if (Object.keys(changes).length > 0) {
                const response = updateProjectData(changes);
                this.acceptChanges();
            }
        },
    });

    // Load the project data
    await myScheduler.project.loadInlineData(projectData);
}

document.addEventListener('DOMContentLoaded', initializeScheduler);

Documentation

For detailed documentation, please refer to the official Bryntum documentation.

License

This project is licensed under the MIT License. See the LICENSE file for details.

1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.0

10 months ago