Giter Site home page Giter Site logo

csmu-cenr / bzbond Goto Github PK

View Code? Open in Web Editor NEW

This project forked from beezwax/bzbond

0.0 0.0 0.0 13.52 MB

A toolset for integrating web technologies with the Claris platform

License: MIT License

Shell 4.45% JavaScript 41.84% PowerShell 3.52% SCSS 50.19%

bzbond's Introduction

Quality tools for Claris Web Integrations

๐Ÿ˜Ž Reliably run web UIs and JavaScript libraries in web viewers

โฉ Speed up FileMaker scripts with JavaScript functions

๐Ÿ’พ Store and deploy web code

๐ŸŽ‰ Keep the JavaScript party going server-side with an extensible microservice

Table of contents

Quick start

Claris-focused quick start

Requirements

Instructions

  1. Download bzBond-claris.fmp12
  2. Open bzBond-claris.fmp12 and explore

Web-focused quick start

Requirements

Instructions

  1. On the command line run npx -y @beezwax/create-bzbond-app <project-name>.
    E.g. npx -y @beezwax/create-bzbond-app testing-bzbond
    An all in one FileMaker/Web Project file with the same name as your project should open

Usage

FileMaker/Claris Pro can harness the power of web technologies to enhance user and developer experience. bzBond provides tools to make it easier to do this. Here's some of the things you can do.

Control web viewer scripting with promises

bzBond treats script calls from web viewers as promises, letting you chain them or use async/await.

In the code below we want to add the current user to a group. First we need to get their account name, then we want to add them to the group. To synchronize these operations we chain two scripts together, using the result of the first script in the parameter of the second script. The UI is updated at each point in the process.

// Get the UI html element to update
status = document.getElement("#status");
// Update the UI to show process is about to run 
status.textContent = "Adding user to group...";

// Run FileMaker scripts to add the current user to a group
// First FileMaker script gets the user's account name
bzBond.PerformScript("Get Account Name")
  .then(accountName => {

    // Update the UI with the result of the first FileMaker script
    status.textContent = `Account Name is ${accountName}`;

    // Second FileMaker script adds the user to the group "bzBuzz"
    bzBond.PerformScript("Add User To Group", {accountName, group: "bzBuzz"})
  })
  .then(groupSize => {

    // Update the UI with the result of the second FileMaker script
    status.textContent = `Group size is ${groupSize}`;
  });

Add a JavaScript function runner to your scripts

In the script below we are sorting a JSON array, something that is complex to code and slow to run when done natively. With bzBond we are using just a few lines of JavaScript and the script takes only 250ms to run. Sorted!

Works on server!

With bzBond-server installed on FileMaker/Claris Server the script will work on the server without any changes.

Easily compile to a single file

Every web project created with create-bzbond-app can be compiled to a single file web project by simply running the build script: npm run build

Lighten the load of loading code

Store your single file web projects in the simple bzBond web project manager:

To deploy in a web viewer, reference the project name in the web viewer calculation dialog:

And call a configurable script to precisely control the load process:

Fully integrated debugging/dev server

When it comes to real-time code updates, FileMaker is the OG. The bzBond web project manager stays true to its roots and lets you see web code updates in real-time. Simply switch on debugging at the web project or web viewer level:

The Tools

bzBond-js

bzBond-js is a javascript library that manages interactions between FileMaker/Claris Pro scripts and web viewer layout objects. It can be installed in an npm project using the command npm install @beezwax/bzbond-js. To communicate with FileMaker, bzBond-js calls the script bzBondRelay, which is in the bzBond-claris.fmp12 file.

Learn more about bzBond-js

bzBond-claris

bzBond-claris is a FileMaker Pro file containing tools to manage interactions with bzbond-js and store and deploy bzbond web project code. It also includes educational material and examples to help you get started with bzBond.

Learn more about bzBond-claris

create-bzbond-app

create-bzbond-app is the best way to create new bzBond projects. It requires node/npm and git.

Learn more about create-bzBond-app

bzBond-web-template

bzBond-web-template forms the core of create-bzbond-app. It includes bzBond-js and a build config that creates a single html file that can be used as the source for a bzBond web project.

Learn more about bzBond-web-template

bzBond-server

bzBond-server is a server-based microservice that works with the bzBondRelay script to allow JavaScript to be run on FileMaker/Claris Server.

Learn more about bzBond-server

bzbond's People

Contributors

alecgregory avatar gosukiwi avatar dependabot[bot] avatar dorfnox avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.