diff --git a/docs/assets/img/classes-controller-app.png b/docs/assets/img/classes-controller-app.png index 258d468..dce9c4e 100644 Binary files a/docs/assets/img/classes-controller-app.png and b/docs/assets/img/classes-controller-app.png differ diff --git a/docs/assets/img/classes-controller-epi.png b/docs/assets/img/classes-controller-epi.png index 800c32d..9314bab 100644 Binary files a/docs/assets/img/classes-controller-epi.png and b/docs/assets/img/classes-controller-epi.png differ diff --git a/docs/assets/img/classes-model-app.png b/docs/assets/img/classes-model-app.png index fb9a374..3997067 100644 Binary files a/docs/assets/img/classes-model-app.png and b/docs/assets/img/classes-model-app.png differ diff --git a/docs/assets/img/classes-model-epi.png b/docs/assets/img/classes-model-epi.png index c6f54c9..57f018c 100644 Binary files a/docs/assets/img/classes-model-epi.png and b/docs/assets/img/classes-model-epi.png differ diff --git a/docs/assets/img/classes-view.png b/docs/assets/img/classes-view.png new file mode 100755 index 0000000..4751692 Binary files /dev/null and b/docs/assets/img/classes-view.png differ diff --git a/docs/assets/img/classes-widget-basedocumentmodel.png b/docs/assets/img/classes-widget-basedocumentmodel.png index 4363cbd..4c3c608 100644 Binary files a/docs/assets/img/classes-widget-basedocumentmodel.png and b/docs/assets/img/classes-widget-basedocumentmodel.png differ diff --git a/docs/assets/img/classes-widget-baseframe.png b/docs/assets/img/classes-widget-baseframe.png index 1243e52..507014c 100644 Binary files a/docs/assets/img/classes-widget-baseframe.png and b/docs/assets/img/classes-widget-baseframe.png differ diff --git a/docs/assets/img/classes-widget-basemodel.png b/docs/assets/img/classes-widget-basemodel.png index 57f964a..df8a539 100644 Binary files a/docs/assets/img/classes-widget-basemodel.png and b/docs/assets/img/classes-widget-basemodel.png differ diff --git a/docs/assets/img/epigraf-architecture.png b/docs/assets/img/epigraf-architecture.png index ddaead0..18bdcba 100644 Binary files a/docs/assets/img/epigraf-architecture.png and b/docs/assets/img/epigraf-architecture.png differ diff --git a/docs/assets/img/epigraf-use-cases.png b/docs/assets/img/epigraf-use-cases.png index c0cc23c..69168dd 100644 Binary files a/docs/assets/img/epigraf-use-cases.png and b/docs/assets/img/epigraf-use-cases.png differ diff --git a/docs/backend/controller.md b/docs/backend/controller.md index 7833d3f..861d138 100644 --- a/docs/backend/controller.md +++ b/docs/backend/controller.md @@ -170,7 +170,7 @@ User settings in Epigraf are either stored in the user record or in the session. All controllers extend the `AppController` class (`src/Controller/AppController.php`) which is derived from the base `Controller` class provided by the CakePHP framework. -![Application controller class hierarchy](../assets/img/classes-controller-app.png){:width="55%"} +![Application controller class hierarchy](../assets/img/classes-controller-app.png) On the application level, controllers serve the following purposes: @@ -189,7 +189,7 @@ The Epi plugin implements an own `Epi\AppController` class (`plugins/Epi/Control derived from the global AppController, adding functionality for project database handling. All project database controllers within the Epi plugin extend this class. -![Epi plugin controller class hierarchy](../assets/img/classes-controller-epi.png){:width="60%"} +![Epi plugin controller class hierarchy](../assets/img/classes-controller-epi.png) They Epi plugin controllers serve the following purposes: diff --git a/docs/backend/model.md b/docs/backend/model.md index 4d760e3..d5c4695 100644 --- a/docs/backend/model.md +++ b/docs/backend/model.md @@ -30,7 +30,7 @@ All Tables are derived from `src/Model/Table/BaseTable.php` and all Entities fro Common methods in the table classes are `findHasParams()` and `findContainFields()` which are used by the controllers to filter and retrieve data from the database based on query parameters. -![Model class hierarchy (App)](../assets/img/classes-model-app.png){:width="60%"} +![Model class hierarchy (App)](../assets/img/classes-model-app.png) There are some pecularities in the models. You may need to read the section about project database models to understand the full picture: @@ -64,7 +64,7 @@ Tables classes are usually derived from `plugins/Epi/src/Model/Table/BaseTable.p and entity classes from `plugins/Epi/src/Model/Entity/BaseEntity.php`. Both project database level base classes extend the corresponding application's base classes. -![Model class hierarchy (Epi)](../assets/img/classes-model-epi.png){:width="80%"} +![Model class hierarchy (Epi)](../assets/img/classes-model-epi.png) Some special cases have to be considered: @@ -101,8 +101,6 @@ Other mechanisms for shared functionality include: For example, the ExportTableInterface defines the functions getExportCount() and getExportData() that are called from the Job classes on different models. -TODO: Explain pagination and the TotalPaginator class. - #### Behaviors - **ImportBehavior**: Import csv or xml files and transfer data between databases. Records are mapped using identifiers, allowing patch operations in addition to adding and deleting data. @@ -124,13 +122,13 @@ TODO: Explain pagination and the TotalPaginator class. - **MutateEntityInterface, MutateTableInterface**: Functions for batch operations. - **ScopedTableInterface**: Scope function, which allow a database table to be used for different entities. -## Types Configuration +## Domain Model Configuration The Epigraf user interface is highly configurable to support domains such as letter editions or social media corpora. The configuration defines which fields from a database record are used with which labels in the specific domain. The configuration is stored in the types table. Each typed entity has access to its type record by the type property. -TODO: Add example. Add better explanation. +See the user documentation for information about how to configure the domain model. ## Retrieving Field Values diff --git a/docs/backend/view.md b/docs/backend/view.md index 04c96b0..80bafd8 100644 --- a/docs/backend/view.md +++ b/docs/backend/view.md @@ -13,7 +13,7 @@ different view classes are used. The ApiView based classes are also used in the export pipelines to generate TEI-documents and other structured data formats. -![View class hierarchy](../assets/img/classes-views.png){: width="55%"} +![View class hierarchy](../assets/img/classes-view.png) ## Rendering HTML for the Browser @@ -48,10 +48,6 @@ Utilities for rendering HTML elements: - FilesHelper - TypesHelper -TODO: Briefly explain the purpose of each helper. No need to duplicate documentation from the helper classes. - - - ## Rendering API Data ### JSON, XML, CSV diff --git a/docs/frontend/widgets.md b/docs/frontend/widgets.md index 41c12f3..c08fe77 100644 --- a/docs/frontend/widgets.md +++ b/docs/frontend/widgets.md @@ -31,7 +31,7 @@ The base classes of the framework are defined in `htdocs/js/base.js`: A document consists of several parts such as sections, footnotes and notes. Document classes hold together the different parts and manage the interaction between them. -![Inheritance hierarchy](../assets/img/classes-widget-basemodel.png){:width="24%"} +![Inheritance hierarchy](../assets/img/classes-widget-basemodel.png) ### The Widget Life Cycle @@ -127,7 +127,7 @@ Frames are HTML elements attached to derivates of the `BaseFrame` class that han - `TabFrame`: Responsible for tab sheets within in sidebars. - `PopupWindow`: Responsible for popups and dialogs. -![Inheritance hierarchy](../assets/img/classes-widget-baseframe.png){:width="32%"} +![Inheritance hierarchy](../assets/img/classes-widget-baseframe.png) The frame classes handle dynamic content loading and trigger the respective widget lifecycle methods: - `loadElement()` displays a DOM element already constructed on the page. @@ -215,7 +215,7 @@ Both are descendants of the `BaseForm` class supporting features for saving data - Handle form validation and the form submission lifecycle. - Emit events for other widgets reacting to content updates. -![Inheritance hierarchy](../assets/img/classes-widget-basedocumentmodel.png){:width="70%"} +![Inheritance hierarchy](../assets/img/classes-widget-basedocumentmodel.png) The `EntityWidget` is used for simple entities, usually displayed in a vertical table. It inherits all methods and properties from the base from widget diff --git a/docs/index.md b/docs/index.md index ab64c4d..d382390 100644 --- a/docs/index.md +++ b/docs/index.md @@ -74,7 +74,7 @@ MariaDB and the file system is used to store [data](/docs/database). There is on user accounts and application-wide data. For the research data, multiple project databases are created. Frontend and database content is cached using Redis. If no Redis server is available, the cache is stored in the file system. -![Epigraf architecture](assets/img/epigraf-architecture.png){:width="90%"} +![Epigraf architecture](assets/img/epigraf-architecture.png) ## Directory structure