Merge branch 'develop' of https://github.com/karaka-management/Developer-Guide into develop
45
SUMMARY.md
Normal file → Executable file
|
|
@ -13,15 +13,24 @@
|
||||||
* [Html Coding Standards]({%}?page=standards/html)
|
* [Html Coding Standards]({%}?page=standards/html)
|
||||||
* [Php Coding Standards]({%}?page=standards/php)
|
* [Php Coding Standards]({%}?page=standards/php)
|
||||||
|
|
||||||
## Examples
|
## Application Examples
|
||||||
* [Application Sample]({%}?page=example_app/app)
|
* [Application Sample]({%}?page=example_app/app)
|
||||||
* [Modules]({%}?page=example_module/module)
|
* [Modules]({%}?page=example_module/module)
|
||||||
* [Packages]({%}?page=example_module/packages)
|
* [Packages]({%}?page=example_module/packages)
|
||||||
|
|
||||||
## Application Specific
|
|
||||||
* [Language Files]({%}?page=basics/language_files)
|
* [Language Files]({%}?page=basics/language_files)
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
|
### Backend
|
||||||
|
* [Codes]({%}?page=services/codes)
|
||||||
|
* [Routing]({%}?page=basics/routing)
|
||||||
|
* [Dispatching]({%}?page=basics/dispatching)
|
||||||
|
* [Views]({%}?page=basics/views)
|
||||||
|
* [Validation]({%}?page=services/validation)
|
||||||
|
|
||||||
|
### Frontend
|
||||||
|
* [Notifications]({%}?page=frontend/notifications)
|
||||||
|
|
||||||
### Message
|
### Message
|
||||||
* [Uri]({%}?page=services/uri)
|
* [Uri]({%}?page=services/uri)
|
||||||
* [Requests]({%}?page=basics/requests)
|
* [Requests]({%}?page=basics/requests)
|
||||||
|
|
@ -49,15 +58,27 @@
|
||||||
* [Queues]({%}?page=services/queues)
|
* [Queues]({%}?page=services/queues)
|
||||||
* [Collection]({%}?page=services/collection)
|
* [Collection]({%}?page=services/collection)
|
||||||
|
|
||||||
### UI
|
|
||||||
* [Styles and Layout]({%}?page=frontend/styles_and_layout)
|
|
||||||
* [Charting]({%}?page=services/charting)
|
|
||||||
* [Codes]({%}?page=services/codes)
|
|
||||||
* [Routing]({%}?page=basics/routing)
|
|
||||||
* [Dispatching]({%}?page=basics/dispatching)
|
|
||||||
* [Views]({%}?page=basics/views)
|
|
||||||
* [Validation]({%}?page=services/validation)
|
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
* [Encoding]({%}?page=services/encoding)
|
* [Encoding]({%}?page=services/encoding)
|
||||||
* [Encryption]({%}?page=services/encryption)
|
* [Encryption]({%}?page=services/encryption)
|
||||||
|
|
||||||
|
## UI
|
||||||
|
|
||||||
|
### Layout
|
||||||
|
|
||||||
|
* [Tables]({%}?page=frontend/elements/tables/tables)
|
||||||
|
* [Data selection]({%}?page=frontend/elements/dataselection/dataselection)
|
||||||
|
* [Alerts]({%}?page=frontend/elements/alerts/alerts)
|
||||||
|
* [Buttons]({%}?page=frontend/elements/buttons/buttons)
|
||||||
|
* [Tags]({%}?page=frontend/elements/tags/tags)
|
||||||
|
* [Panels]({%}?page=frontend/elements/panels/panels)
|
||||||
|
* [Tabs]({%}?page=frontend/elements/tabs/tabs)
|
||||||
|
* [Breadcrumbs]({%}?page=frontend/elements/breadcrumbs/breadcrumbs)
|
||||||
|
* [Progress]({%}?page=frontend/elements/progress/progress)
|
||||||
|
* [Layout]({%}?page=frontend/grid/grid)
|
||||||
|
* [Charting]({%}?page=services/charting)
|
||||||
|
|
||||||
|
### Forms
|
||||||
|
* [Forms]({%}?page=frontend/elements/forms/forms)
|
||||||
|
* [Inputs]({%}?page=frontend/elements/inputs/inputs)
|
||||||
|
* [Tables]({%}?page=frontend/elements/tables/tables)
|
||||||
|
|
|
||||||
0
basics/dispatching.md
Normal file → Executable file
4
basics/language_files.md
Normal file → Executable file
|
|
@ -13,14 +13,14 @@ The content of the language files is very simple. All you need is the module nam
|
||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Orange Management
|
* Karaka
|
||||||
*
|
*
|
||||||
* PHP Version 8.0
|
* PHP Version 8.0
|
||||||
*
|
*
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 1.0
|
* @license OMS License 1.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @link https://orange-management.org
|
* @link https://karaka.app
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
|
|
||||||
0
basics/requests.md
Normal file → Executable file
0
basics/responses.md
Normal file → Executable file
0
basics/routing.md
Normal file → Executable file
0
basics/views.md
Normal file → Executable file
0
cover.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 226 KiB |
0
datastorage/cache.md
Normal file → Executable file
0
datastorage/cookie.md
Normal file → Executable file
16
datastorage/database/connection.md
Normal file → Executable file
|
|
@ -34,6 +34,22 @@ $con = ConnectionFactory::create([
|
||||||
]);
|
]);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Database types
|
||||||
|
|
||||||
|
Available database types/constants can be found in the the `DatabaseType.php` file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
public const MYSQL = 'mysql'; /* MySQL */
|
||||||
|
public const SQLITE = 'sqlite'; /* SQLITE */
|
||||||
|
public const PGSQL = 'pgsql'; /* PostgreSQL */
|
||||||
|
public const SQLSRV = 'mssql'; /* Microsoft SQL Server */
|
||||||
|
```
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
```php
|
||||||
|
DatabaseType::MYSQL;
|
||||||
|
```
|
||||||
|
|
||||||
## Database Pool
|
## Database Pool
|
||||||
|
|
||||||
Existing database connections can be added to the database pool:
|
Existing database connections can be added to the database pool:
|
||||||
|
|
|
||||||
2
datastorage/database/datamapper.md
Normal file → Executable file
|
|
@ -65,7 +65,7 @@ The `name` contains the field name in the database, the `type` represents the da
|
||||||
In order to make columns searchable you have to add `'autocomplete' => true` as column information to the respective column.
|
In order to make columns searchable you have to add `'autocomplete' => true` as column information to the respective column.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
public COLUMNS = [
|
public const COLUMNS = [
|
||||||
'db_field_name_1' => ['name' => 'db_field_name_1', 'type' => 'int', 'internal' => 'model_var_name_1', 'autocomplete' => true],
|
'db_field_name_1' => ['name' => 'db_field_name_1', 'type' => 'int', 'internal' => 'model_var_name_1', 'autocomplete' => true],
|
||||||
'db_field_name_2' => ['name' => 'db_field_name_2', 'type' => 'string', 'internal' => 'model_var_name_2'],
|
'db_field_name_2' => ['name' => 'db_field_name_2', 'type' => 'string', 'internal' => 'model_var_name_2'],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
0
datastorage/database/queries.md
Normal file → Executable file
0
datastorage/localstorage.md
Normal file → Executable file
0
datastorage/session.md
Normal file → Executable file
0
example_app/app.md
Normal file → Executable file
4
example_module/module.md
Normal file → Executable file
|
|
@ -334,11 +334,11 @@ The `info.json` file contains general module information used during installatio
|
||||||
|
|
||||||
### Name
|
### Name
|
||||||
|
|
||||||
The name category contains the names used for internal as well as external identification. Both `id` and `internal` are globally unique between all modules and is assigned generated by Orange Management. The `id` can also be used by other modules which need integer identification of modules. The `id` has the form `xxxxx00000` which means, that modules don't only occupy a single id but a range of ids. This can be useful for other modules where additional module specific information need to be assigned (e.g. `Navigation` module). The `external` name is the name the creator of the module can give the module. This is the name that will be used during searches for modules and shown to customers.
|
The name category contains the names used for internal as well as external identification. Both `id` and `internal` are globally unique between all modules and is assigned generated by Karaka. The `id` can also be used by other modules which need integer identification of modules. The `id` has the form `xxxxx00000` which means, that modules don't only occupy a single id but a range of ids. This can be useful for other modules where additional module specific information need to be assigned (e.g. `Navigation` module). The `external` name is the name the creator of the module can give the module. This is the name that will be used during searches for modules and shown to customers.
|
||||||
|
|
||||||
### Version
|
### Version
|
||||||
|
|
||||||
The version is automatically incremented by Orange Management. The version might be used by other modules in order to require a specific version of a module. Versions must follow the following format:
|
The version is automatically incremented by Karaka. The version might be used by other modules in order to require a specific version of a module. Versions must follow the following format:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
major.minor.build = 2.512.19857
|
major.minor.build = 2.512.19857
|
||||||
|
|
|
||||||
0
example_module/packages.md
Normal file → Executable file
0
example_module/update.md
Normal file → Executable file
50
frontend/elements/alerts/alerts.md
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
# Alerts
|
||||||
|
|
||||||
|
Alerts are boxes styled in such a way that they attract the attention of the user which makes them ideal to provide important information to the user. Alerts are often used on a page header, footer or as popup.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Ok
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="log-msg log-msg-status-ok"><i class="fa fa-check"></i>This is ok</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Advanced
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="log-msg log-msg-status-ok">
|
||||||
|
<h1 class="log-msg-title">This is a Title</h1><i class="close fa fa-times"></i>
|
||||||
|
<div class="log-msg-content">This is a message</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Info
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="log-msg log-msg-status-info"><i class="fa fa-bell"></i>This is a info</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Warning
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="log-msg log-msg-status-warning"><i class="fa fa-exclamation-triangle"></i>This is a warning</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Error
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="log-msg log-msg-status-error"><i class="fa fa-times"></i>This is an error</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
BIN
frontend/elements/alerts/error.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
frontend/elements/alerts/info.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
frontend/elements/alerts/ok.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
frontend/elements/alerts/ok_advanced.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
frontend/elements/alerts/warning.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
17
frontend/elements/breadcrumbs/breadcrumbs.md
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Breadcrumbs
|
||||||
|
|
||||||
|
Breadcrumbs provide a visual feedback to the user at which step/location the user currently is.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<ul class="crumbs-1">
|
||||||
|
<li><a>One</a></li>
|
||||||
|
<li><a>Two</a></li>
|
||||||
|
<li><a>Three</a></li>
|
||||||
|
<li><a>Four</a></li>
|
||||||
|
<li class="last active"><a>Five</a></li>
|
||||||
|
</ul>
|
||||||
|
```
|
||||||
BIN
frontend/elements/breadcrumbs/normal.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
95
frontend/elements/buttons/buttons.md
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
# Buttons
|
||||||
|
|
||||||
|
The following default button styles are available for the different user interactions. Buttons can be created with the `button` tag or the `a` link tag with a `button` class.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Normal
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<button>Test Button</button>
|
||||||
|
<button><i class="fa fa-lightbulb-o"></i> Test Button</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="#" class="button">Test Button</a>
|
||||||
|
<a href="#" class="button"><i class="fa fa-lightbulb-o"></i> Test Button</a>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cancel
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<button class="cancel">Test Button</button>
|
||||||
|
<button class="cancel"><i class="fa fa-lightbulb-o"></i> Test Button</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="#" class="button cancel">Test Button</a>
|
||||||
|
<a href="#" class="button cancel"><i class="fa fa-lightbulb-o"></i> Test Button</a>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Save
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<button class="save">Test Button</button>
|
||||||
|
<button class="save"><i class="fa fa-lightbulb-o"></i> Test Button</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="#" class="button save">Test Button</a>
|
||||||
|
<a href="#" class="button save"><i class="fa fa-lightbulb-o"></i> Test Button</a>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Close
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<button class="close">Test Button</button>
|
||||||
|
<button class="close"><i class="fa fa-lightbulb-o"></i> Test Button</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="#" class="button close">Test Button</a>
|
||||||
|
<a href="#" class="button close"><i class="fa fa-lightbulb-o"></i> Test Button</a>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Disabled
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<button class="disabled">Test Button</button>
|
||||||
|
<button class="disabled"><i class="fa fa-lightbulb-o"></i> Test Button</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="#" class="button disabled">Test Button</a>
|
||||||
|
<a href="#" class="button disabled"><i class="fa fa-lightbulb-o"></i> Test Button</a>
|
||||||
|
```
|
||||||
BIN
frontend/elements/buttons/cancel.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
frontend/elements/buttons/cancel_icon.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
frontend/elements/buttons/close.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
frontend/elements/buttons/close_icon.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
frontend/elements/buttons/disabled.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
frontend/elements/buttons/disabled_icon.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
frontend/elements/buttons/normal.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
frontend/elements/buttons/normal_icon.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
frontend/elements/buttons/save.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
frontend/elements/buttons/save_icon.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
frontend/elements/panels/header_footer.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
35
frontend/elements/panels/panels.md
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Panels
|
||||||
|
|
||||||
|
Panels are for displaying content (e.g. forms, text) in a uniform style across the application.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
### Plain
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<section class="box wf-100">
|
||||||
|
<div class="inner">....</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Header & footer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<section class="portlet">
|
||||||
|
<div class="portlet-head">Header</div>
|
||||||
|
<div class="portlet-body">...</div>
|
||||||
|
<div class="portlet-foot">Footer</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
BIN
frontend/elements/panels/plain.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
frontend/elements/progress/meter.png
Normal file
|
After Width: | Height: | Size: 451 B |
BIN
frontend/elements/progress/meter_striped.png
Normal file
|
After Width: | Height: | Size: 527 B |
35
frontend/elements/progress/progress.md
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Progress
|
||||||
|
|
||||||
|
A progress bar can be used to show the prograss of a background process, milestone progress, etc.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Progres bar
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<progress value="33" max="100"></progress>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Meter without stripes
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="meter green nostripes">
|
||||||
|
<span style="width: 50%"></span>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Meter striped without animation
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="meter green noanimation">
|
||||||
|
<span style="width: 25%"></span>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
For a meter with animations remove the `noanimation` class.
|
||||||
BIN
frontend/elements/progress/progress.png
Normal file
|
After Width: | Height: | Size: 472 B |
BIN
frontend/elements/tabs/accordion.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
frontend/elements/tabs/highlighted_horizontal.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
frontend/elements/tabs/highlighted_vertical.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
frontend/elements/tabs/more.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
frontend/elements/tabs/more_open.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
107
frontend/elements/tabs/tabs.md
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
# Tabs
|
||||||
|
|
||||||
|
Tabs allow for further content segmentation by showing only selected content.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Horizontal
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="tabview tab-1">
|
||||||
|
<ul class="tab-links">
|
||||||
|
<li class="active"><label for="c-tab-1">Tab 1</label></li>
|
||||||
|
<li><label for="c-tab-2">Tab 2</label></li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<input type="radio" id="c-tab-1" name="tabular-1" checked>
|
||||||
|
<div class="tab">
|
||||||
|
Test content
|
||||||
|
</div>
|
||||||
|
<input type="radio" id="c-tab-2" name="tabular-1">
|
||||||
|
<div class="tab">
|
||||||
|
<p>Test content 2</p><p>asdf</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
> In order to remove the blue outline and white background color from the content section of the tab, replace the class name `tab-1` with `tab-2`
|
||||||
|
|
||||||
|
### Vertical
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="tabview tab-1 left">
|
||||||
|
<ul class="tab-links">
|
||||||
|
<li class="active"><label for="c-tab-1-2">Tab 1</label></li>
|
||||||
|
<li><label for="c-tab-2-3">Tab 2</label></li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<input type="radio" id="c-tab-1-2" name="tabular-3" checked>
|
||||||
|
<div class="tab">
|
||||||
|
Test content
|
||||||
|
</div>
|
||||||
|
<input type="radio" id="c-tab-2-3" name="tabular-3">
|
||||||
|
<div class="tab">
|
||||||
|
<p>Test content 2</p><p>asdf</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
> In order to remove the blue outline and white background color from the content section of the tab, replace the class name `tab-1` with `tab-2`
|
||||||
|
|
||||||
|
### Accordion
|
||||||
|
|
||||||
|
The accordion can show and hide multiple elements. This makes it possible to also hide or show all elements at the same time.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="box ac-container wf-100">
|
||||||
|
<input type="checkbox" name="About us" id="ac-1">
|
||||||
|
<label for="ac-1">About us</label>
|
||||||
|
<section>
|
||||||
|
<p>...</p>
|
||||||
|
</section>
|
||||||
|
<input type="checkbox" name="About us" id="ac-2">
|
||||||
|
<label for="ac-2">How we work</label>
|
||||||
|
<section>
|
||||||
|
<p>...</p>
|
||||||
|
</section>
|
||||||
|
<input type="checkbox" name="About us" id="ac-3" checked>
|
||||||
|
<label for="ac-3">References</label>
|
||||||
|
<section>
|
||||||
|
<p>...</p>
|
||||||
|
</section>
|
||||||
|
<input type="checkbox" name="About us" id="ac-4">
|
||||||
|
<label for="ac-4">Contact us</label>
|
||||||
|
<section>
|
||||||
|
<p>...</p>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
### More
|
||||||
|
|
||||||
|
With the more tab it's possible to show/hide content with a single click. This is perfect for created advanced content sections which should be initially hidden and only shown if the user desires to see them.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="more-container">
|
||||||
|
<input id="more-customer-region" type="checkbox">
|
||||||
|
<label for="more-customer-region">
|
||||||
|
<span>Click here!</span>
|
||||||
|
<i class="fa fa-chevron-right expand"></i>
|
||||||
|
</label>
|
||||||
|
<div>
|
||||||
|
<p>...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
BIN
frontend/elements/tags/dynamic_style.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
frontend/elements/tags/icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
frontend/elements/tags/normal.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
frontend/elements/tags/remove_icon.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
39
frontend/elements/tags/tags.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Tags
|
||||||
|
|
||||||
|
Tags or badges are often used to describe a category or type of an element. Alternatively they are also used to highlight dynamically added objects such as objects selected from a select/datalist/input list.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Plain
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<span class="tag">Test Tag</span>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Color
|
||||||
|
|
||||||
|
Since tags are often styled individually (e.g. per category, by user) we recommend to use inline style sheet for defining different background colors.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<span class="tag" style="background: #be2edd">Test Tag</span>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Icon
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<span class="tag"><i class="fa fa-lightbulb-o"></i>Test Tag</span>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Remove and icon
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```html
|
||||||
|
<span class="tag"><i class="fa fa-times"></i><i class="fa fa-lightbulb-o"></i>Test Tag</span>
|
||||||
|
```
|
||||||
90
frontend/grid/grid.md
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
# Layout
|
||||||
|
|
||||||
|
The following layout allows you to define and structure content based on screen/browser window resoltion. Internally this implementation uses `flexbox`.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Available sizes are `xs-*`, `sm-*`, `md-*`, `lg-*` with a grid ranging from `1-12`. Every prefix (e.g. `xs-*`) represents a window size when it becomes active. It's also possible to combine them to define a layout for different browser window sizes. This is useful for different devices such as desktop, cellphone, tablet.
|
||||||
|
|
||||||
|
* `xs-` extra small
|
||||||
|
* `sm-` small
|
||||||
|
* `md-` medium
|
||||||
|
* `lg-` large
|
||||||
|
|
||||||
|
|
||||||
|
```html
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-9">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-8">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3">
|
||||||
|
<section class="box wf-100"> </section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
```
|
||||||
BIN
frontend/grid/grid.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
0
frontend/notifications.md
Normal file → Executable file
|
|
@ -1,146 +0,0 @@
|
||||||
# Styles and Layout
|
|
||||||
|
|
||||||
## Css
|
|
||||||
|
|
||||||
This project only supports scss and css. All css files need to be provided with a scss file which will be processed for every build. The css file has to be minimized, optimized and compressed as `.gz`. This means there is at least one scss file (multiple if you are combining/importing multiple scss files and creating one output css file), one css file and one compressed `.gz` file. The file name has to be lower case and the same for every file and only the extension is different.
|
|
||||||
|
|
||||||
## Grid/Flexbox
|
|
||||||
|
|
||||||
Flexboxes are preferred for all content containers.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-1">
|
|
||||||
<section class="portlet">...</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
Available sizes are `xs-*`, `sm-*`, `md-*`, `lg-*` with a grid ranging from `1-12`.
|
|
||||||
|
|
||||||
## Sizes
|
|
||||||
|
|
||||||
### Container
|
|
||||||
|
|
||||||
A container (e.g. section, div, table, etc) can be sized by using `.wf-*` classes. Available sizes for `*` are `100`, `80`, `75`, `66`, `50`, `33`, `25`, `20`.
|
|
||||||
|
|
||||||
## Icons
|
|
||||||
|
|
||||||
This project uses font-awesome for its icons, the following example allows for stacked icons e.g. creating new/unread email notifications:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<i class="fa fa-lg infoIcon fa-envelope">
|
|
||||||
<span class="badge">333</span>
|
|
||||||
</i>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Form Elements
|
|
||||||
|
|
||||||
### Input with button
|
|
||||||
|
|
||||||
The following snippet creates a 100% input with a button next to it.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div class="ipt-wrap">
|
|
||||||
<div class="ipt-first"><input type="text" id="iID"></div>
|
|
||||||
<div class="ipt-second"><button>Text</button></div>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Input with dictionary
|
|
||||||
|
|
||||||
The following snippet creates a dictionary button (e.g. for opening a popup window to search for accounts/groups etc) right before an input field.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<span class="input">
|
|
||||||
<button type="button"><i class="fa fa-book"></i></button>
|
|
||||||
<input type="text">
|
|
||||||
</span>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Checkbox
|
|
||||||
|
|
||||||
The following snippet creates a checkbox.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<label class="checkbox" for="iID">
|
|
||||||
<input id="iID" type="checkbox" name="name" value="1">
|
|
||||||
<span class="checkmark"></span>
|
|
||||||
Text
|
|
||||||
</label>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Radio
|
|
||||||
|
|
||||||
The following snippet creates a checkbox.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<label class="checkbox" for="iID">
|
|
||||||
<input id="iID" type="radio" name="name" value="1">
|
|
||||||
<span class="checkmark"></span>
|
|
||||||
Text
|
|
||||||
</label
|
|
||||||
|
|
||||||
## Section
|
|
||||||
|
|
||||||
A section is a container for information that can and should be grouped together.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<section class="portlet">
|
|
||||||
<div class="portlet-head">Title</div>
|
|
||||||
<div class="portlet-body">
|
|
||||||
...
|
|
||||||
</div>
|
|
||||||
<div class="portlet-foot">Footer</div>
|
|
||||||
</section>
|
|
||||||
```
|
|
||||||
|
|
||||||
Additional coloring of sections can be achieved by adding a coloring class.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<section class="portlet green">
|
|
||||||
...
|
|
||||||
</section>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Tabs
|
|
||||||
|
|
||||||
Tabs are a useful tool in order to display more information on one page.
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div class="tabview tab-2">
|
|
||||||
<ul class="tab-links">
|
|
||||||
<li><label for="tab-1">Tab Title 1</label>
|
|
||||||
<li><label for="tab-2">Tab Title 2</label>
|
|
||||||
<li><label for="tab-*">...</label>
|
|
||||||
</ul>
|
|
||||||
<div class="tab-content">
|
|
||||||
<input type="radio" id="tab-1" name="tabular-2" checked>
|
|
||||||
<div class="tab">
|
|
||||||
... Tab content ...
|
|
||||||
</div>
|
|
||||||
<input type="radio" id="tab-2" name="tabular-2" checked>
|
|
||||||
<div class="tab">
|
|
||||||
... Tab content ...
|
|
||||||
</div>
|
|
||||||
<input type="radio" id="tab-*" name="tabular-2" checked>
|
|
||||||
<div class="tab">
|
|
||||||
... Tab content ...
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Tables
|
|
||||||
|
|
||||||
## Lists
|
|
||||||
|
|
||||||
## Accordion
|
|
||||||
|
|
||||||
## Breadcrumbs
|
|
||||||
|
|
||||||
## Badges/Tags
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
An example of all styles can be found in the tests called `StandardElements.htm`.
|
|
||||||
0
general/app_flow.drawio.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
0
general/base_uml.drawio.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
22
general/setup.md
Normal file → Executable file
|
|
@ -7,14 +7,14 @@ In order to setup the application for development for the first time please see
|
||||||
Make sure your dev-environment or server fulfills the following requirements:
|
Make sure your dev-environment or server fulfills the following requirements:
|
||||||
|
|
||||||
* PHP >= 8.0
|
* PHP >= 8.0
|
||||||
* PHP extensions: mbstring, gd, zip, dom, mysql/pgsql/sqlsrv, sqlite, bcmath, imap\*, redis\*, memcached\*, ftp\*, socket\*, curl\*, xml\*
|
* PHP extensions: mbstring, gd, zip, dom, pdo, pdo-mysql/pdo-pgsql/pdo-sqlsrv, sqlite, bcmath, imap\*, redis\*, memcached\*, ftp\*, socket\*, curl\*, xml\*
|
||||||
* databases: mysql, postgresql, sqlsrv
|
* databases: mysql/postgresql/sqlsrv
|
||||||
* web server: apache2
|
* web server: apache2/nginx
|
||||||
* mod_headers (apache2)
|
* mod_headers (apache2)
|
||||||
|
|
||||||
The application and frameworks can use different databases. For the normal development process you only need one (whichever you prefer). However, in order to test against all supported databases and all code paths you would have to install all above mentioned databases.
|
The application and frameworks can use different databases. For the normal development process you only need one (whichever you prefer). However, in order to test against all supported databases and all code paths you would have to install all above mentioned databases.
|
||||||
|
|
||||||
Extensions marked with `*` are optional. They are only required in special situations.
|
Extensions marked with `*` are optional but recommended. They are only required in special situations. Requirements with a `/` in between mean that only one of the dependencies is necessary depending on your preferences and previous decisions.
|
||||||
|
|
||||||
Steps which are not explained in this documentation are how to install and setup the above mentioned software and extensions. You also should configure the web server paths accordingly in order to access the application in the browser.
|
Steps which are not explained in this documentation are how to install and setup the above mentioned software and extensions. You also should configure the web server paths accordingly in order to access the application in the browser.
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ This also installs all required dev tools and sets up the directory structure by
|
||||||
The following steps will setup the application, download all necessary tools and perform extensive code quality checks and documentation tasks:
|
The following steps will setup the application, download all necessary tools and perform extensive code quality checks and documentation tasks:
|
||||||
|
|
||||||
1. Go to the directory where you want to install the build script
|
1. Go to the directory where you want to install the build script
|
||||||
2. Run `git clone -b develop https://github.com/Orange-Management/Build.git`
|
2. Run `git clone -b develop https://github.com/karaka-management/Build.git`
|
||||||
3. Modify `config.sh` (most likely the db credentials and paths)
|
3. Modify `config.sh` (most likely the db credentials and paths)
|
||||||
4. Run `chmod +x buildProject.sh`
|
4. Run `chmod +x buildProject.sh`
|
||||||
5. Run `./buildProject.sh`
|
5. Run `./buildProject.sh`
|
||||||
|
|
@ -58,12 +58,12 @@ This will only setup the application including some dummy data and also perform
|
||||||
### Steps
|
### Steps
|
||||||
|
|
||||||
1. Go to the directory where you want to install the application
|
1. Go to the directory where you want to install the application
|
||||||
2. Run `git clone -b develop https://github.com/Orange-Management/Orange-Management.git`
|
2. Run `git clone -b develop https://github.com/karaka-management/Karaka.git`
|
||||||
3. Run `git submodule update --init --recursive`
|
3. Run `git submodule update --init --recursive`
|
||||||
4. Run `git submodule foreach git checkout develop`
|
4. Run `git submodule foreach git checkout develop`
|
||||||
5. Install Composer
|
5. Install Composer
|
||||||
6. Run `composer install` inside `Orange-Management`
|
6. Run `composer install` inside `Karaka`
|
||||||
7. Run `php vendor/bin/phpunit --configuration tests/phpunit_no_coverage.xml` inside `Orange-Management` or open `http://127.0.0.1/Install`
|
7. Run `php vendor/bin/phpunit --configuration tests/phpunit_no_coverage.xml` inside `Karaka` or open `http://127.0.0.1/Install`
|
||||||
|
|
||||||
After the installation you'll have access to the following content:
|
After the installation you'll have access to the following content:
|
||||||
|
|
||||||
|
|
@ -101,13 +101,13 @@ The following tools are important to test the application and to ensure the code
|
||||||
This will only setup the application including some dummy data and also perform the code tests but no quality checks. Compared to option 2 this includes much more test data and it doesn't execute a unit test.
|
This will only setup the application including some dummy data and also perform the code tests but no quality checks. Compared to option 2 this includes much more test data and it doesn't execute a unit test.
|
||||||
|
|
||||||
1. Go to the directory where you want to install the application
|
1. Go to the directory where you want to install the application
|
||||||
2. Run `git clone -b develop https://github.com/Orange-Management/Orange-Management.git`
|
2. Run `git clone -b develop https://github.com/karaka-management/Karaka.git`
|
||||||
3. Run `git submodule update --init --recursive`
|
3. Run `git submodule update --init --recursive`
|
||||||
4. Run `git submodule foreach git checkout develop`
|
4. Run `git submodule foreach git checkout develop`
|
||||||
5. Install Composer
|
5. Install Composer
|
||||||
6. Run `composer install` inside `Orange-Management`
|
6. Run `composer install` inside `Karaka`
|
||||||
7. Create the database table `oms`
|
7. Create the database table `oms`
|
||||||
7. Run `php demoSetup/setup.php` inside `Orange-Management`
|
7. Run `php demoSetup/setup.php` inside `Karaka`
|
||||||
|
|
||||||
After the installation you'll have access to the following content:
|
After the installation you'll have access to the following content:
|
||||||
|
|
||||||
|
|
|
||||||
0
general/structure.md
Normal file → Executable file
0
logo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
0
math/matrix.md
Normal file → Executable file
0
quality/inspections.md
Normal file → Executable file
0
security/security_guidelines.md
Normal file → Executable file
0
services/authentication.md
Normal file → Executable file
0
services/charting.md
Normal file → Executable file
8
services/codes.md
Normal file → Executable file
|
|
@ -19,6 +19,8 @@ $c128b->saveToPngFile('path/code.png');
|
||||||
|
|
||||||
The barcodes can be either saved as `png` and `jpeg` or outputted directly.
|
The barcodes can be either saved as `png` and `jpeg` or outputted directly.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
```php
|
```php
|
||||||
$c128b = new C128b('ABcdeFG0123+-!@?', 200, 50);
|
$c128b = new C128b('ABcdeFG0123+-!@?', 200, 50);
|
||||||
$c128b = $C128a->get();
|
$c128b = $C128a->get();
|
||||||
|
|
@ -26,9 +28,3 @@ header ('Content-type: image/png');
|
||||||
imagepng($c128b);
|
imagepng($c128b);
|
||||||
imagedestroy($c128b);
|
imagedestroy($c128b);
|
||||||
```
|
```
|
||||||
|
|
||||||
<div align="center">
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
</div>
|
|
||||||
0
services/codes1.png
Normal file → Executable file
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
0
services/events.md
Normal file → Executable file
0
services/filesystem.md
Normal file → Executable file
0
services/localization.md
Normal file → Executable file
4
services/logging.md
Normal file → Executable file
|
|
@ -37,3 +37,7 @@ On the client side a logger is also implemented providing the same functions as
|
||||||
```js
|
```js
|
||||||
let log = jsOMS.Log.Logger.getInstance(true, false, true);
|
let log = jsOMS.Log.Logger.getInstance(true, false, true);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* The first parameter defines if the log output will done in the console
|
||||||
|
* The second parameter defines if the log output should be done as notification
|
||||||
|
* The thrid parameter defines if the log output should be send to the backend
|
||||||
|
|
|
||||||
0
services/mail.md
Normal file → Executable file
0
services/money.md
Normal file → Executable file
0
services/parsers.md
Normal file → Executable file
0
services/queues.md
Normal file → Executable file
0
services/rng.md
Normal file → Executable file
0
services/tasks.md
Normal file → Executable file
0
services/uri.md
Normal file → Executable file
0
services/validation.md
Normal file → Executable file
0
standards/definitions.md
Normal file → Executable file
6
standards/documentation.md
Normal file → Executable file
|
|
@ -45,7 +45,7 @@ A file documentation MUST be implemented in the following form:
|
||||||
* PHP Version 7.0
|
* PHP Version 7.0
|
||||||
*
|
*
|
||||||
* @package Package name
|
* @package Package name
|
||||||
* @copyright Orange Management
|
* @copyright Karaka
|
||||||
* @license OMS License 1.0
|
* @license OMS License 1.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @link http://your.url.com
|
* @link http://your.url.com
|
||||||
|
|
@ -120,7 +120,7 @@ The javascript documentation is based on JsDoc, therefore only valid JsDoc comme
|
||||||
* File description.
|
* File description.
|
||||||
*
|
*
|
||||||
* @package Package name
|
* @package Package name
|
||||||
* @copyright Orange Management
|
* @copyright Karaka
|
||||||
* @license OMS License 1.0
|
* @license OMS License 1.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @link http://your.url.com
|
* @link http://your.url.com
|
||||||
|
|
@ -175,7 +175,7 @@ In some cases it may be required to type hint a variable in this case the follow
|
||||||
|
|
||||||
## Todos
|
## Todos
|
||||||
|
|
||||||
Todos should be documented in the [PROJECT.md](https://github.com/Orange-Management/Docs/blob/master/Project/PROJECT.md).
|
Todos should be documented in the [PROJECT.md](https://github.com/karaka-management/Docs/blob/master/Project/PROJECT.md).
|
||||||
|
|
||||||
In code todos can be created like this
|
In code todos can be created like this
|
||||||
|
|
||||||
|
|
|
||||||