Skip to content

work-board.fbl

Example document work-board.fbl

Views generated from the file

This view is drawn by this site from work-board.fbl itself. It shows the data in the document, not the notation the diagram draws.

Bindings of work-board.fbl. Flowchart of the bindings in work-board.fbl: 1 binding(s) (board) as boxes with the files they claim and their body's format family, and 7 element rule(s) and 0 relation rule(s) as rounded boxes with the type each produces.
Generated from work-board.fbl at 10c1ea0
Diagram as text (Mermaid)
flowchart LR
  accTitle: Bindings of work-board.fbl
  accDescr: Flowchart of the bindings in work-board.fbl: 1 binding(s) (board) as boxes with the files they claim and their body's format family, and 7 element rule(s) and 0 relation rule(s) as rounded boxes with the type each produces.
  b_board["Work board<br/>board<br/>.board, yaml family"]
  e_board_root("root<br/>Root")
  b_board -->|element| e_board_root
  e_board_board("board<br/>Board")
  b_board -->|element| e_board_board
  e_board_item("item<br/>Item")
  b_board -->|element| e_board_item
  e_board_task("task<br/>Task")
  b_board -->|element| e_board_task
  e_board_person("person<br/>Person")
  b_board -->|element| e_board_person
  e_board_placement("placement<br/>Placement")
  b_board -->|element| e_board_placement
  e_board_group("group<br/>GroupState")
  b_board -->|element| e_board_group

The file

Download work-board.fbl (7,304 bytes, unchanged from the source).

{
  "$schema": "https://etalii.net/adp/fbl/schema/0.1/fbl.schema.json#/$defs/Document",
  "fbl": "0.3",
  "doc": "The board file of DISL 0.4's worked example (specifications/disl/work-board.dis). The view data the example keeps in the file (placements, groups, showArchived) is bound here as ordinary entries and keys; the specification's persistence.view.bind says what they are.",
  "bindings": {
    "board": {
      "title": "Work board",
      "claims": {
        "extensions": [
          ".board"
        ]
      },
      "body": {
        "kind": "file",
        "family": "yaml"
      },
      "reader": "declared",
      "text": {
        "newline": "lf",
        "indent": 2,
        "finalNewline": true
      },
      "header": {
        "key": "work-board",
        "value": 1
      },
      "elements": [
        {
          "name": "root",
          "type": "Root",
          "at": "/",
          "attributes": {
            "version": {
              "key": "work-board",
              "readOnly": true
            },
            "showArchived": {
              "key": "showArchived",
              "default": false
            }
          }
        },
        {
          "name": "board",
          "type": "Board",
          "at": "/boards/*",
          "id": {
            "from": {
              "key": "id"
            }
          },
          "attributes": {
            "name": {
              "key": "name",
              "empty": "refuse"
            },
            "link": {
              "key": "link",
              "empty": "remove"
            }
          },
          "insert": {
            "place": "after-last",
            "container": "/boards",
            "create": {
              "at": "end-of-document"
            },
            "keys": [
              "id",
              "name",
              "link"
            ]
          },
          "remove": {
            "cascade": [
              "placement"
            ],
            "container": "remove-when-empty"
          }
        },
        {
          "name": "item",
          "type": "Item",
          "at": "/items/*",
          "id": {
            "from": {
              "key": "id"
            }
          },
          "attributes": {
            "board": {
              "key": "board",
              "empty": "remove",
              "reference": {
                "to": [
                  "board"
                ],
                "by": "id"
              }
            },
            "name": {
              "key": "name",
              "empty": "refuse"
            },
            "link": {
              "key": "link",
              "empty": "remove"
            },
            "status": {
              "key": "status"
            }
          },
          "insert": {
            "place": "after-last",
            "container": "/items",
            "create": {
              "at": "end-of-document"
            },
            "keys": [
              "id",
              "board",
              "name",
              "link",
              "status"
            ]
          },
          "remove": {
            "cascade": [
              "placement",
              "group"
            ],
            "container": "remove-when-empty"
          }
        },
        {
          "name": "task",
          "type": "Task",
          "at": "/items/*/tasks/*",
          "parent": {
            "rules": [
              "item"
            ],
            "slot": "tasks"
          },
          "id": {
            "from": {
              "key": "id"
            }
          },
          "attributes": {
            "title": {
              "key": "title",
              "empty": "refuse"
            },
            "status": {
              "key": "status"
            },
            "updated": {
              "key": "updated",
              "empty": "remove"
            },
            "link": {
              "key": "link",
              "empty": "remove"
            }
          },
          "insert": {
            "place": "after-last",
            "container": "tasks",
            "create": {
              "at": {
                "after": "status"
              }
            },
            "keys": [
              "id",
              "title",
              "status",
              "updated",
              "link"
            ]
          },
          "remove": {
            "container": "remove-when-empty"
          }
        },
        {
          "name": "person",
          "type": "Person",
          "at": "/people/*",
          "id": {
            "from": {
              "key": "id"
            }
          },
          "attributes": {
            "name": {
              "key": "name",
              "empty": "refuse"
            },
            "assignedTo": {
              "key": "item",
              "empty": "remove",
              "reference": {
                "to": [
                  "item"
                ],
                "by": "id"
              }
            }
          },
          "insert": {
            "place": "after-last",
            "container": "/people",
            "create": {
              "at": "end-of-document"
            },
            "keys": [
              "id",
              "name",
              "item"
            ]
          },
          "remove": {
            "cascade": [
              "placement"
            ],
            "container": "remove-when-empty"
          }
        },
        {
          "name": "placement",
          "type": "Placement",
          "at": "/placements/*",
          "attributes": {
            "element": {
              "key": "element",
              "reference": {
                "to": [
                  "board",
                  "item",
                  "person"
                ],
                "by": "id"
              }
            },
            "x": {
              "key": "x"
            },
            "y": {
              "key": "y"
            }
          },
          "insert": {
            "place": "after-last",
            "container": "/placements",
            "create": {
              "at": "end-of-document"
            },
            "keys": [
              "element",
              "x",
              "y"
            ]
          },
          "remove": {
            "container": "remove-when-empty"
          }
        },
        {
          "name": "group",
          "type": "GroupState",
          "at": "/groups/*",
          "attributes": {
            "element": {
              "key": "element",
              "reference": {
                "to": [
                  "item"
                ],
                "by": "id"
              }
            },
            "group": {
              "key": "group"
            },
            "collapsed": {
              "key": "collapsed"
            }
          },
          "insert": {
            "place": "after-last",
            "container": "/groups",
            "create": {
              "at": "end-of-document"
            },
            "keys": [
              "element",
              "group",
              "collapsed"
            ]
          },
          "remove": {
            "container": "remove-when-empty"
          }
        }
      ],
      "template": {
        "text": "work-board: 1\n"
      }
    }
  }
}

In an IDE

No IDE host runs this example yet.