Merge pull request #21632 from eileenmcnaughton/notice2
[civicrm-core.git] / ext / afform / README.md
... / ...
CommitLineData
1# Form builder (afform)
2
3![Screenshot](docs/sandbox/3-Free-Blocks-Parent.png)
4
5The Affable Administrative Angular Form Framework (`afform`) is a system for administering AngularJS-based forms
6in CiviCRM which:
7
81. Allows developers to declaratively define a canonical, baseline form using AngularJS.
92. Allows administrators (or administrative GUI tools) to use the CRUD API to customize the forms.
103. Allows developers (or administrators/tools) to embed these forms in other CiviCRM-AngularJS apps.
114. Allows developers to apply change-sets via hook. (*WIP; pending upstream support*)
12
13This extension is a proof-of-concept. It aims to demonstrate the core model/concept -- however, there are
14[known issues and additional components](docs/roadmap.md) to address, and some documentation will be easier to approach
15if you already have a basic understanding of CiviCRM API and AngularJS. It is licensed under [AGPL-3.0](LICENSE.txt).
16
17## Requirements
18
19* PHP v7.2+
20
21<!--
22## Installation (Web UI)
23
24This extension ships with core and when it matures will eventually
25be enabled by default on new installs and at some point required.
26
27## Installation (CLI, Zip)
28
29Sysadmins and developers may download the `.zip` file for this extension and
30install it with the command-line tool [cv](https://github.com/civicrm/cv).
31
32```bash
33cd <extension-dir>
34cv dl org.civicrm.afform@https://github.com/totten/afform/archive/master.zip
35```
36-->
37
38## Installation (CLI, Git)
39
40Sysadmins and developers may enable afform via the UI extensions page or
41install it with the command-line tool [cv](https://github.com/civicrm/cv).
42
43```bash
44cv en afform
45```
46
47## Developer Documentation
48
49* [Quick Start: Creating the canonical definition of a basic form](docs/quickstart.md)
50* [Writing Forms: Afform as basic AngularJS templates](docs/writing.md) (With example: *Contact Record*)
51* [Embedding Forms: Afform as reusable building-block](docs/embed.md) (With example: *Contact Record*)
52* [Form CRUD: Updating forms via programmatic API](docs/crud.md)
53* [Form Hooks: Updating forms via declarative selector](docs/alter.md) (*WIP; pending upstream support*)
54* [Full AngularJS: Integrating between Afform and vanilla AngularJS](docs/angular.md)
55* [Roadmap and Known Issues](docs/roadmap.md)
56* [Philosophy, Beliefs, Assumptions](docs/philosophy.md)