civicrm-core.git
3 years agoafform_gui, afform_html - Refresh after reverting
Tim Otten [Tue, 10 Dec 2019 06:21:04 +0000 (22:21 -0800)]
afform_gui, afform_html - Refresh after reverting

3 years agoafform_gui, afform_html - Adjust "Revert" button based on actual status
Tim Otten [Tue, 10 Dec 2019 06:12:01 +0000 (22:12 -0800)]
afform_gui, afform_html - Adjust "Revert" button based on actual status

3 years agoAfform.get - Return computed fields, `has_local` and `has_packaged`
Tim Otten [Tue, 10 Dec 2019 06:05:10 +0000 (22:05 -0800)]
Afform.get - Return computed fields, `has_local` and `has_packaged`

3 years agoafform_gui - Add nav item under "Administer => Customize Data and Screens"
Tim Otten [Tue, 10 Dec 2019 05:01:32 +0000 (21:01 -0800)]
afform_gui - Add nav item under "Administer => Customize Data and Screens"

3 years agoafform_gui - Add skeletal upgrader
Tim Otten [Tue, 10 Dec 2019 04:58:33 +0000 (20:58 -0800)]
afform_gui - Add skeletal upgrader

3 years agoStricter directives with better docs
Coleman Watts [Mon, 9 Dec 2019 15:49:02 +0000 (10:49 -0500)]
Stricter directives with better docs

3 years agoGUI - Rename af-block => af-container
Coleman Watts [Mon, 9 Dec 2019 13:13:30 +0000 (08:13 -0500)]
GUI - Rename af-block => af-container

Free up the term af-block to refer to something more specific than a container.

3 years agoPrettier json
Coleman Watts [Sat, 7 Dec 2019 20:29:17 +0000 (15:29 -0500)]
Prettier json

3 years agoFix handling of non-breaking spaces
Coleman Watts [Tue, 3 Dec 2019 18:04:13 +0000 (13:04 -0500)]
Fix handling of non-breaking spaces

See https://stackoverflow.com/questions/59215211/why-does-domdocument-mess-up-unicode-nonbreaking-spaces

3 years agoIn shallow mode, only convert markup to array that the GUI editor understands.
Coleman Watts [Sat, 30 Nov 2019 15:52:33 +0000 (10:52 -0500)]
In shallow mode, only convert markup to array that the GUI editor understands.

Any markup not using a tag/class/attribute understood by the GUI editor
will have its contents preserved "as-is" in a "#markup" string.

3 years agoAdd api/v4/formatExamples/stylized.php
Tim Otten [Thu, 28 Nov 2019 02:08:44 +0000 (18:08 -0800)]
Add api/v4/formatExamples/stylized.php

3 years agoFormat whitespace in aff.html files
Coleman Watts [Wed, 27 Nov 2019 14:42:22 +0000 (09:42 -0500)]
Format whitespace in aff.html files

Adds api options for use in GUI editor to autoformat html whitespace.
Results in much nicer looking markup!

3 years agoAfformTest - Add coverage for weirdly named file.
Tim Otten [Thu, 28 Nov 2019 01:45:19 +0000 (17:45 -0800)]
AfformTest - Add coverage for weirdly named file.

Also: Clarify that the API input is a formName and not strictly a
directiveName.

3 years agoApi improvements and test fix
Coleman Watts [Tue, 26 Nov 2019 18:33:53 +0000 (13:33 -0500)]
Api improvements and test fix

Improve efficiency by not fetching layout if not needed in api.get
Fix test failure by correctly merging existing metadata during update

3 years agoRemove client_route for now; might be yagni
Coleman Watts [Tue, 26 Nov 2019 17:27:46 +0000 (12:27 -0500)]
Remove client_route for now; might be yagni

3 years agoUse canonical name in api.afform.get
Coleman Watts [Tue, 26 Nov 2019 14:39:23 +0000 (09:39 -0500)]
Use canonical name in api.afform.get

Names were being munged in the api which led to a mismatch between
filenames and afform names.

3 years agoGUI: Correctly handle naming a newly created form
Coleman Watts [Tue, 26 Nov 2019 14:13:49 +0000 (09:13 -0500)]
GUI: Correctly handle naming a newly created form

3 years agoGUI: Add new block to the top
Coleman Watts [Mon, 25 Nov 2019 14:56:25 +0000 (09:56 -0500)]
GUI: Add new block to the top

Creates new items at top of block, underneath the fieldset legend if present

3 years agoGUI: Add wysiwyg markup block
Coleman Watts [Mon, 25 Nov 2019 00:52:40 +0000 (19:52 -0500)]
GUI: Add wysiwyg markup block

3 years agoDisplay improvements
Coleman Watts [Fri, 22 Nov 2019 17:49:17 +0000 (12:49 -0500)]
Display improvements

3 years agoGUI: Improve adding/removing entities in correct order
Coleman Watts [Thu, 21 Nov 2019 22:11:37 +0000 (17:11 -0500)]
GUI: Improve adding/removing entities in correct order

3 years agoGUI: use strict
Coleman Watts [Tue, 19 Nov 2019 21:22:02 +0000 (16:22 -0500)]
GUI: use strict

3 years agoGUI: Fix entity values selector
Coleman Watts [Tue, 19 Nov 2019 21:05:12 +0000 (16:05 -0500)]
GUI: Fix entity values selector

3 years agoGUI: Better widget for editing input type select
Coleman Watts [Tue, 19 Nov 2019 14:50:09 +0000 (09:50 -0500)]
GUI: Better widget for editing input type select

3 years agoGUI Add controls for text color, block border & block background color
Coleman Watts [Tue, 19 Nov 2019 13:42:51 +0000 (08:42 -0500)]
GUI Add controls for text color, block border & block background color

3 years agoGUI: Cleanup menus
Coleman Watts [Mon, 18 Nov 2019 13:22:37 +0000 (08:22 -0500)]
GUI: Cleanup menus

3 years agoGUI Validate drag-n-drop actions
Coleman Watts [Sun, 17 Nov 2019 15:19:12 +0000 (10:19 -0500)]
GUI Validate drag-n-drop actions

Prevent fields from being moved outside their entity fieldset(s)
Prevent fieldsets from being dragged into other fieldsets

3 years agoGUI Fix number field style
Coleman Watts [Sun, 17 Nov 2019 15:17:48 +0000 (10:17 -0500)]
GUI Fix number field style

3 years agoEdit option lists
Coleman Watts [Thu, 14 Nov 2019 19:07:37 +0000 (14:07 -0500)]
Edit option lists

3 years agoGUI: Config fields
Coleman Watts [Tue, 12 Nov 2019 21:58:55 +0000 (16:58 -0500)]
GUI: Config fields

3 years agoPerform deep merge on fieldDefn.input_attrs
Coleman Watts [Wed, 13 Nov 2019 15:28:00 +0000 (10:28 -0500)]
Perform deep merge on fieldDefn.input_attrs

3 years agoCore: Set breadcrumb as well as title
Coleman Watts [Tue, 12 Nov 2019 12:30:54 +0000 (07:30 -0500)]
Core: Set breadcrumb as well as title

3 years agoGUI: Entity config
Coleman Watts [Tue, 12 Nov 2019 03:20:12 +0000 (22:20 -0500)]
GUI: Entity config

3 years agoGUI: Entity tab style improvements
Coleman Watts [Sat, 9 Nov 2019 14:07:14 +0000 (09:07 -0500)]
GUI: Entity tab style improvements

3 years agoGUI: Add/remove block buttons
Coleman Watts [Fri, 8 Nov 2019 18:04:21 +0000 (13:04 -0500)]
GUI: Add/remove block buttons

3 years agoGUI: Refactor entity panel to directive & add field search
Coleman Watts [Fri, 8 Nov 2019 15:03:28 +0000 (10:03 -0500)]
GUI: Refactor entity panel to directive & add field search

3 years agoGUI configure form buttons
Coleman Watts [Thu, 7 Nov 2019 16:41:08 +0000 (11:41 -0500)]
GUI configure form buttons

3 years agoDon't write field defn unless changed
Coleman Watts [Thu, 7 Nov 2019 00:07:20 +0000 (19:07 -0500)]
Don't write field defn unless changed

3 years agoGUI: Bare bones field style
Coleman Watts [Wed, 6 Nov 2019 13:31:11 +0000 (08:31 -0500)]
GUI: Bare bones field style

3 years agoGUI: Add block button
Coleman Watts [Wed, 6 Nov 2019 13:29:09 +0000 (08:29 -0500)]
GUI: Add block button

3 years agoImprove admin bar style
Coleman Watts [Wed, 6 Nov 2019 12:25:35 +0000 (07:25 -0500)]
Improve admin bar style

3 years agoSave button for gui + api
Coleman Watts [Wed, 6 Nov 2019 02:35:02 +0000 (21:35 -0500)]
Save button for gui + api

3 years agoClarify docblock
Coleman Watts [Mon, 4 Nov 2019 21:47:44 +0000 (16:47 -0500)]
Clarify docblock

3 years agoConfigure layout style of blocks
Coleman Watts [Mon, 4 Nov 2019 14:40:20 +0000 (09:40 -0500)]
Configure layout style of blocks

3 years agoDynamic option lists for select elements
Coleman Watts [Mon, 4 Nov 2019 13:02:23 +0000 (08:02 -0500)]
Dynamic option lists for select elements

This should respond better to changes in the model.

3 years agoAdd forms, add/remove entities
Coleman Watts [Sun, 3 Nov 2019 00:14:47 +0000 (20:14 -0400)]
Add forms, add/remove entities

3 years agoFixes #4 - html encode injected properties and enable test
Coleman Watts [Sat, 2 Nov 2019 00:57:27 +0000 (20:57 -0400)]
Fixes #4 - html encode injected properties and enable test

3 years agoFields drag n drop
Coleman Watts [Fri, 1 Nov 2019 19:15:59 +0000 (15:15 -0400)]
Fields drag n drop

3 years agoWIP canvas
Coleman Watts [Thu, 31 Oct 2019 00:08:47 +0000 (20:08 -0400)]
WIP canvas

3 years agoRemove convertTextNodes
Coleman Watts [Wed, 30 Oct 2019 22:18:31 +0000 (18:18 -0400)]
Remove convertTextNodes

The api now returns them as an array so we don't need to worry about this on the client side.

3 years agoWIP fields
Coleman Watts [Tue, 29 Oct 2019 21:30:23 +0000 (17:30 -0400)]
WIP fields

3 years agoConfig forms - values section
Coleman Watts [Mon, 28 Oct 2019 01:52:14 +0000 (21:52 -0400)]
Config forms - values section

3 years agoHorizontal tabs
Coleman Watts [Fri, 25 Oct 2019 16:01:48 +0000 (12:01 -0400)]
Horizontal tabs

3 years agoAdd some metadata
Coleman Watts [Fri, 25 Oct 2019 14:32:24 +0000 (10:32 -0400)]
Add some metadata

3 years agoWIP beginning work on GUI
Coleman Watts [Thu, 24 Oct 2019 17:05:19 +0000 (13:05 -0400)]
WIP beginning work on GUI

3 years ago(REF) AHQ::makeRoot() - Extract helper from FormDataModel
Tim Otten [Fri, 1 Nov 2019 20:27:46 +0000 (13:27 -0700)]
(REF) AHQ::makeRoot() - Extract helper from FormDataModel

3 years agoFilterTest - Add basic unit test for the 'defn="..."` injection
Tim Otten [Fri, 1 Nov 2019 20:14:33 +0000 (13:14 -0700)]
FilterTest - Add basic unit test for the 'defn="..."` injection

3 years ago(REF) _afform_html_filter() - Extract method for unit-testing
Tim Otten [Fri, 1 Nov 2019 19:45:15 +0000 (12:45 -0700)]
(REF) _afform_html_filter() - Extract method for unit-testing

3 years ago(NFC) Small cleanup
Tim Otten [Fri, 1 Nov 2019 19:41:35 +0000 (12:41 -0700)]
(NFC) Small cleanup

3 years ago(REF) AfformScanner::getLayout() - Extract new method
Tim Otten [Fri, 1 Nov 2019 19:40:56 +0000 (12:40 -0700)]
(REF) AfformScanner::getLayout() - Extract new method

3 years agoFix parser to work with nested fields
Coleman Watts [Fri, 1 Nov 2019 13:57:25 +0000 (09:57 -0400)]
Fix parser to work with nested fields

Fields should be allowed to be inside other tags as long as they're
contained in an af-fieldset.

3 years agoAdd bin/test-all.sh
Tim Otten [Fri, 1 Nov 2019 05:20:26 +0000 (22:20 -0700)]
Add bin/test-all.sh

3 years agoFix warnings for `#text` format
Tim Otten [Fri, 1 Nov 2019 04:53:44 +0000 (21:53 -0700)]
Fix warnings for `#text` format

3 years agoaf-fieldset - More updates for switching E=>A
Tim Otten [Fri, 1 Nov 2019 04:53:24 +0000 (21:53 -0700)]
af-fieldset - More updates for switching E=>A

3 years agoRestrict af-fieldset directive to A not E
Coleman Watts [Thu, 31 Oct 2019 00:33:26 +0000 (20:33 -0400)]
Restrict af-fieldset directive to A not E

The af-fieldset directive was ambiguiously set to restrict: "AE"
but only "E" was supported. I want to pick one and stick with it, and
I prefer "A" because the fieldset is also a container, so div or fieldset
seem like the appropriate tag names.

3 years agoArrayHtml - Change text node format from string to array
Coleman Watts [Wed, 30 Oct 2019 20:53:19 +0000 (16:53 -0400)]
ArrayHtml - Change text node format from string to array

Everything in the arrayHtml is associative exept text nodes were just strings.
That made it difficult to loop through the whole thing in javascript, so
this updates the format to be consistent with everything else.

3 years agoArrayHtml - Treat `<af-entity/>` and `<af-field/>` as self-closing tags
Tim Otten [Tue, 29 Oct 2019 23:11:10 +0000 (16:11 -0700)]
ArrayHtml - Treat `<af-entity/>` and `<af-field/>` as self-closing tags

3 years agoArrayHtml - Encode self-closing HTML tags (`<img />`, `<br />`) normally
Tim Otten [Tue, 29 Oct 2019 23:07:12 +0000 (16:07 -0700)]
ArrayHtml - Encode self-closing HTML tags (`<img />`, `<br />`) normally

3 years agoArrayHtml - Support comments
Tim Otten [Tue, 29 Oct 2019 22:31:06 +0000 (15:31 -0700)]
ArrayHtml - Support comments

Before
------

HTML comments appear in the array as NULL values

After
-----

HTML comments appear in the array as `['#comment' => '...']`

Technical Notes
---------------

* Considered using `['#tag' => 'comment', '#children' => '...'], but this is ambiguous when you
  have a node/tag named '<comment>'
* Considered using `['#tag' => 'comment', '#children' => '...'], but it's needlessly difficult to
  extract the comment text from under `'#children'`.

3 years agoFix forms autofill with new dataModel
Coleman Watts [Mon, 28 Oct 2019 17:38:22 +0000 (13:38 -0400)]
Fix forms autofill with new dataModel

The formDataModel is now an object rather than an array.
This also changes the array key to match what's used in testAfform.aff.html:
url-autofill instead of af-url-autofill

3 years ago(BC Break) Change shallow+deep formats to begin with an array of elements
Tim Otten [Sat, 26 Oct 2019 00:14:30 +0000 (17:14 -0700)]
(BC Break) Change shallow+deep formats to begin with an array of elements

Before: In the shallow+deep representations of `layout`, the root array
has a `#tag` and `#children`.

After: The root array is just list a list of children.

Comment: This is a more accufrate representation of how HTML partials are
often written.

3 years agoFormDataModel::parseFields() - Rename param for clarity
Tim Otten [Sat, 26 Oct 2019 01:51:07 +0000 (18:51 -0700)]
FormDataModel::parseFields() - Rename param for clarity

This function uses a recursive algorithm to scan subtrees.  Each call to the
algorithm is a particular HTML element.

3 years agoFormDataModel - Define behavior for more edgy HTML documents
Tim Otten [Sat, 26 Oct 2019 01:31:22 +0000 (18:31 -0700)]
FormDataModel - Define behavior for more edgy HTML documents

3 years agoSplit "Utils" into "AHQ" and "FormDataModel"
Tim Otten [Sat, 26 Oct 2019 01:21:40 +0000 (18:21 -0700)]
Split "Utils" into "AHQ" and "FormDataModel"

3 years ago(NFC) Civi/Afform/Symbols.php - Docblock
Tim Otten [Sat, 26 Oct 2019 00:45:40 +0000 (17:45 -0700)]
(NFC) Civi/Afform/Symbols.php - Docblock

3 years agoCivi/Afform/Utils - Small cleanups
Tim Otten [Sat, 26 Oct 2019 00:40:08 +0000 (17:40 -0700)]
Civi/Afform/Utils - Small cleanups

3 years agoUnit tests - Fix test-run on 5.19.beta
Tim Otten [Thu, 24 Oct 2019 20:15:03 +0000 (13:15 -0700)]
Unit tests - Fix test-run on 5.19.beta

The conditional incorrectly tries to activate `api4` when running on 5.19.beta.

3 years agoUse helper for checking items to get by name
Coleman Watts [Thu, 24 Oct 2019 12:15:27 +0000 (08:15 -0400)]
Use helper for checking items to get by name

3 years agoafform/mock - Update extension boilerplate
Tim Otten [Thu, 24 Oct 2019 00:35:24 +0000 (17:35 -0700)]
afform/mock - Update extension boilerplate

3 years agoafform/gui - Update extension boilerplate
Tim Otten [Thu, 24 Oct 2019 00:35:18 +0000 (17:35 -0700)]
afform/gui - Update extension boilerplate

3 years agoafform/html - Update extension boilerplate
Tim Otten [Thu, 24 Oct 2019 00:35:12 +0000 (17:35 -0700)]
afform/html - Update extension boilerplate

3 years agoafform/core - Update extension boilerplate
Tim Otten [Thu, 24 Oct 2019 00:34:54 +0000 (17:34 -0700)]
afform/core - Update extension boilerplate

3 years agoDelete unused files
Coleman Watts [Wed, 23 Oct 2019 13:47:04 +0000 (09:47 -0400)]
Delete unused files

3 years agoafform_html - Fix typo in module name ("afMoncao"/"afMonaco")
Tim Otten [Sat, 19 Oct 2019 03:49:28 +0000 (20:49 -0700)]
afform_html - Fix typo in module name ("afMoncao"/"afMonaco")

3 years ago'exports' - Specify symbols in notation more like Angular directives ("A", "AE",...
Tim Otten [Sat, 19 Oct 2019 03:46:17 +0000 (20:46 -0700)]
'exports' - Specify symbols in notation more like Angular directives ("A", "AE", etc)

3 years agoafform_mock - Add test-coverage for auto-requires functionality
Tim Otten [Sat, 19 Oct 2019 03:16:14 +0000 (20:16 -0700)]
afform_mock - Add test-coverage for auto-requires functionality

3 years agoafform_mock - Simplify; use auto-requires
Tim Otten [Fri, 18 Oct 2019 23:09:07 +0000 (16:09 -0700)]
afform_mock - Simplify; use auto-requires

3 years agoafform_html - Simplify; use auto-requires
Tim Otten [Fri, 18 Oct 2019 22:58:24 +0000 (15:58 -0700)]
afform_html - Simplify; use auto-requires

3 years agoafform_core: Declare exports for 'af-form', 'af-field', etc
Tim Otten [Fri, 18 Oct 2019 23:05:36 +0000 (16:05 -0700)]
afform_core: Declare exports for 'af-form', 'af-field', etc

3 years agoCivi\Afform\Symbols - Add unit test. Define behavior for Angular exprs.
Tim Otten [Sat, 19 Oct 2019 01:30:14 +0000 (18:30 -0700)]
Civi\Afform\Symbols - Add unit test. Define behavior for Angular exprs.

3 years agoAutomatically detect requirements in *.aff.html
Tim Otten [Fri, 18 Oct 2019 22:05:22 +0000 (15:05 -0700)]
Automatically detect requirements in *.aff.html

PART A: EXPORT LIST

Suppose you create a form `downstreamForm.aff.html`.

The metadata for `downstreamForm` will indicate that it exports an element `<downstream-form/>`:

```php
$angularModules['downstreamForm']['exports']['el'] = ['downstream-form'];
```

PART B: AUTO-REQUIRES

Suppose that:

1. he form `downstreamForm.aff.html` uses element `<upstream-el/>`.
2. The `$angularModules['upsteamMod']['exports']['el']` defines an exported element `upstream-el`.

Then the `downstreamForm` module will automatically requires the `upstreamMod`, as in

```php
$angularModules['downstreamForm']['requires'][] = 'upstreamMod';
```

3 years agoafform_mock - Tweak example names/text
Tim Otten [Tue, 15 Oct 2019 14:35:23 +0000 (07:35 -0700)]
afform_mock - Tweak example names/text

3 years agoUnit tests - Update for api4 in core
Tim Otten [Sat, 19 Oct 2019 02:29:44 +0000 (19:29 -0700)]
Unit tests - Update for api4 in core

3 years agotestAfform.aff.html - Tweak example
Tim Otten [Tue, 15 Oct 2019 14:02:27 +0000 (07:02 -0700)]
testAfform.aff.html - Tweak example

3 years agoafHtmlList - Tweak layout
Tim Otten [Tue, 15 Oct 2019 14:02:05 +0000 (07:02 -0700)]
afHtmlList - Tweak layout

3 years agoDo not fatal on missing extensions
eileen [Sat, 5 Oct 2019 09:11:54 +0000 (11:11 +0200)]
Do not fatal on missing extensions

Currently a missing extension will lead to a complete fatal on afforms. We can ignore these in the
extensions, missing extensions are otherwise notified in corre

3 years agoRename `<af-model>` to `<af-entity>` to better match API terminology
Tim Otten [Sat, 14 Sep 2019 02:09:21 +0000 (22:09 -0400)]
Rename `<af-model>` to `<af-entity>` to better match API terminology

3 years ago<af-form> - By default, show an indicator of submission status
Tim Otten [Sat, 14 Sep 2019 02:02:27 +0000 (22:02 -0400)]
<af-form> - By default, show an indicator of submission status

3 years agoAfform.submit - Use an event to allow the mix of prioritized special-case save methods
Tim Otten [Sat, 14 Sep 2019 01:59:06 +0000 (21:59 -0400)]
Afform.submit - Use an event to allow the mix of prioritized special-case save methods

3 years agoaf/Form.js - Get the form name implicitly (without a global)
Tim Otten [Sat, 14 Sep 2019 00:57:39 +0000 (20:57 -0400)]
af/Form.js - Get the form name implicitly (without a global)