This commit is contained in:
2022-01-06 20:14:24 +00:00
parent 401443a964
commit 1253347859
9 changed files with 204 additions and 280 deletions

View File

@@ -0,0 +1,45 @@
# Style guide for markdown docs for AyaNova
## Title usage
Titles need to be used with navigation in mind as they appear in the index and to the right in the page toc.
So put titles in that users would be looking for specifically
Usage
# page title
## Major section subtitle
### major subsection (optional)
this one is optional and used to subdivide a major section into parts
#### Field or specific item titles
These are very bold and should be used to draw attention to something similarly named in UI that user is looking for in docs
Titles should have a blank line under them then the text
Every page title is a level one title with one # symbol
**DO NOT** use fifth and sixth level titles unless absolutely necessary as they appear pretty drab and hard to read in the docs style being used
## Navigation link descriptions
should be in a code block like this:
Click on `Accounting` then `Service Rates` to access the service rates form
## Form / biz object related doc pages
form pages should follow identical format, the prototypical form is the acc-service-rates.md form, follow that guide
## Images
use images sparingly and only when absolutely necessary to reduce docs size and save time in future updating outdated images
Image should only be there when it's bringing value to what the user is looking at, for example when listing control types etc
it's not useful to put an image of every form since they are all almost identical, just snip out bits where they would add *greatly* to the xfer of knowledge or speed of uptake.
## Links
Be *very* liberal with the use of internal links, users will get far more out of the docs when they can just click around while reading them without having to consule the index or try to figure out where a doc would be.

View File

@@ -36,6 +36,52 @@ Service rates are set on Work orders, Quotes and Preventive Maintenance orders t
Service rates can not be edited to change their Cost or Price once they are used on another object in order to protect the historical record. This means that you must make a new service rate if the price or cost needs to be changed.
## Service rate data table
The Service rates [data table](ay-start-form-data-tables.md) lists all the service rates available and data table [common menu options](ay-start-form-data-tables.md#data-table-common-menu-options).
## Service rate edit form
The Service Rate edit form contains all the [standard edit form](ay-start-edit-forms.md) functionality and contains the following fields:
#### Name
This is the name of the rate as it's displayed in forms and reports. A rate name must be unique from all other service rates entered.
#### Account number
#### Retail charge
#### Cost
#### Unit charge description
#### Contract rate
#### Active
#### Notes
Notes about this record for internal use. Notes can also be reported on if desired.
#### Custom fields
If the form has been [customized](ay-customize.md) and [custom fields](ay-start-form-custom-fields.md) enabled for this object they will display here.
#### Tags
Standard AyaNova object [tags control](ay-start-form-tags.md).
#### Wiki
Standard AyaNova object [wiki control](ay-start-form-wiki.md).
#### Attached files
Standard AyaNova object [attachments control](ay-start-form-attachments.md).

View File

@@ -1,254 +1,6 @@
# USER CUSTOMIZE FORM Placeholder
# Customize form
[UNDER CONSTRUCTION]
#STANDARDS FOR AYANOVA DOCS
All one or two # headings are all capse, three or more #'s are regular sentence case.
## Body copy
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras arcu libero,
mollis sed massa vel, *ornare viverra ex*. Mauris a ullamcorper lacus. Nullam
urna elit, malesuada eget finibus ut, ullamcorper ac tortor. Vestibulum sodales
pulvinar nisl, pharetra aliquet est. Quisque volutpat erat ac nisi accumsan
tempor.
**Sed suscipit**, orci non pretium pretium, quam mi gravida metus, vel
venenatis justo est condimentum diam. Maecenas non ornare justo. Nam a ipsum
eros. [Nulla aliquam](/) orci sit amet nisl posuere malesuada. Proin aliquet
nulla velit, quis ultricies orci feugiat et. `Ut tincidunt sollicitudin`
tincidunt. Aenean ullamcorper sit amet nulla at interdum.
## Headings
### The 3rd level
#### The 4th level
##### The 5th level
###### The 6th level
## Headings <small>with secondary text</small>
### The 3rd level <small>with secondary text</small>
#### The 4th level <small>with secondary text</small>
##### The 5th level <small>with secondary text</small>
###### The 6th level <small>with secondary text</small>
## Blockquotes
> Morbi eget dapibus felis. Vivamus venenatis porttitor tortor sit amet rutrum.
Pellentesque aliquet quam enim, eu volutpat urna rutrum a. Nam vehicula nunc
mauris, a ultricies libero efficitur sed. *Class aptent* taciti sociosqu ad
litora torquent per conubia nostra, per inceptos himenaeos. Sed molestie
imperdiet consectetur.
### Blockquote nesting
> **Sed aliquet**, neque at rutrum mollis, neque nisi tincidunt nibh, vitae
faucibus lacus nunc at lacus. Nunc scelerisque, quam id cursus sodales, lorem
[libero fermentum](/) urna, ut efficitur elit ligula et nunc.
> > Mauris dictum mi lacus, sit amet pellentesque urna vehicula fringilla.
Ut sit amet placerat ante. Proin sed elementum nulla. Nunc vitae sem odio.
Suspendisse ac eros arcu. Vivamus orci erat, volutpat a tempor et, rutrum.
eu odio.
> > > `Suspendisse rutrum facilisis risus`, eu posuere neque commodo a.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed nec leo
bibendum, sodales mauris ut, tincidunt massa.
### Other content blocks
> Vestibulum vitae orci quis ante viverra ultricies ut eget turpis. Sed eu
lectus dapibus, eleifend nulla varius, lobortis turpis. In ac hendrerit nisl,
sit amet laoreet nibh.
``` js hl_lines="8"
var _extends = function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
target[key] = source[key];
}
}
return target;
};
```
> > Praesent at `:::js return target`, sodales nibh vel, tempor felis. Fusce
vel lacinia lacus. Suspendisse rhoncus nunc non nisi iaculis ultrices.
Donec consectetur mauris non neque imperdiet, eget volutpat libero.
## Lists
### Unordered lists
* Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus
non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor lobortis orci,
at elementum urna sodales vitae. In in vehicula nulla, quis ornare libero.
* Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis.
* Nam vulputate tincidunt fringilla.
* Nullam dignissim ultrices urna non auctor.
* Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin ut
eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at aliquam
ac, aliquet sed mauris.
* Nulla et rhoncus turpis. Mauris ultricies elementum leo. Duis efficitur
accumsan nibh eu mattis. Vivamus tempus velit eros, porttitor placerat nibh
lacinia sed. Aenean in finibus diam.
### Ordered lists
1. Integer vehicula feugiat magna, a mollis tellus. Nam mollis ex ante, quis
elementum eros tempor rutrum. Aenean efficitur lobortis lacinia. Nulla
consectetur feugiat sodales.
2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur
ridiculus mus. Aliquam ornare feugiat quam et egestas. Nunc id erat et quam
pellentesque lacinia eu vel odio.
1. Vivamus venenatis porttitor tortor sit amet rutrum. Pellentesque aliquet
quam enim, eu volutpat urna rutrum a. Nam vehicula nunc mauris, a
ultricies libero efficitur sed.
1. Mauris dictum mi lacus
2. Ut sit amet placerat ante
3. Suspendisse ac eros arcu
2. Morbi eget dapibus felis. Vivamus venenatis porttitor tortor sit amet
rutrum. Pellentesque aliquet quam enim, eu volutpat urna rutrum a. Sed
aliquet, neque at rutrum mollis, neque nisi tincidunt nibh.
3. Pellentesque eget `:::js var _extends` ornare tellus, ut gravida mi.
``` js hl_lines="1"
var _extends = function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
target[key] = source[key];
}
}
return target;
};
```
3. Vivamus id mi enim. Integer id turpis sapien. Ut condimentum lobortis
sagittis. Aliquam purus tellus, faucibus eget urna at, iaculis venenatis
nulla. Vivamus a pharetra leo.
### Definition lists
Lorem ipsum dolor sit amet
: Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus
tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor
lobortis orci, at elementum urna sodales vitae. In in vehicula nulla.
Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis.
Nam vulputate tincidunt fringilla.
Nullam dignissim ultrices urna non auctor.
Cras arcu libero
: Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin
ut eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at
aliquam ac, aliquet sed mauris.
## Code blocks
### Inline
Morbi eget `dapibus felis`. Vivamus *`venenatis porttitor`* tortor sit amet
rutrum. Class aptent taciti sociosqu ad litora torquent per conubia nostra,
per inceptos himenaeos. [`Pellentesque aliquet quam enim`](/), eu volutpat urna
rutrum a.
Nam vehicula nunc `:::js return target` mauris, a ultricies libero efficitur
sed. Sed molestie imperdiet consectetur. Vivamus a pharetra leo. Pellentesque
eget ornare tellus, ut gravida mi. Fusce vel lacinia lacus.
### Listing
#!js hl_lines="8"
var _extends = function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
target[key] = source[key];
}
}
return target;
};
## Horizontal rules
Aenean in finibus diam. Duis mollis est eget nibh volutpat, fermentum aliquet
dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna
non auctor.
***
Integer vehicula feugiat magna, a mollis tellus. Nam mollis ex ante, quis
elementum eros tempor rutrum. Aenean efficitur lobortis lacinia. Nulla
consectetur feugiat sodales.
## Data tables
| Sollicitudo / Pellentesi | consectetur | adipiscing | elit | arcu | sed |
| ------------------------ | ----------- | ---------- | ------- | ---- | --- |
| Vivamus a pharetra | yes | yes | yes | yes | yes |
| Ornare viverra ex | yes | yes | yes | yes | yes |
| Mauris a ullamcorper | yes | yes | partial | yes | yes |
| Nullam urna elit | yes | yes | yes | yes | yes |
| Malesuada eget finibus | yes | yes | yes | yes | yes |
| Ullamcorper | yes | yes | yes | yes | yes |
| Vestibulum sodales | yes | - | yes | - | yes |
| Pulvinar nisl | yes | yes | yes | - | - |
| Pharetra aliquet est | yes | yes | yes | yes | yes |
| Sed suscipit | yes | yes | yes | yes | yes |
| Orci non pretium | yes | partial | - | - | - |
Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus
non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor lobortis orci,
at elementum urna sodales vitae. In in vehicula nulla, quis ornare libero.
| Left | Center | Right |
| :--------- | :------: | ------: |
| Lorem | *dolor* | `amet` |
| [ipsum](/) | **sit** | |
Vestibulum vitae orci quis ante viverra ultricies ut eget turpis. Sed eu
lectus dapibus, eleifend nulla varius, lobortis turpis. In ac hendrerit nisl,
sit amet laoreet nibh.
<table>
<colgroup>
<col width="30%">
<col width="70%">
</colgroup>
<thead>
<tr class="header">
<th>Table</th>
<th>with colgroups (Pandoc)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lorem</td>
<td>ipsum dolor sit amet.</td>
</tr>
<tr>
<td>Sed sagittis</td>
<td>eleifend rutrum. Donec vitae suscipit est.</td>
</tr>
</tbody>
</table>
todo: customize form menu option and link to custom fields detailed [form](ay-start-form-custom-fields.md)here
how to customize, required etc.

View File

@@ -0,0 +1,3 @@
# Extensions
todo: general doc about extensions with links to each one

View File

@@ -1,3 +1,6 @@
# Report viewer form placeholder
Report viewer, overview, how to use, link to report designer topics etc
Reports listed may vary depending upon the authorization roles required to view that particular report.

View File

@@ -0,0 +1,10 @@
# Edit forms
[Under construction]
todo: all common features of edit forms here
todo: all common edit form menu options detailed here
todo: all common edit form controls like wiki, attached files, etc in depth here so can link to it from each form

View File

@@ -0,0 +1,3 @@
# Custom fields
todo: how to customize forms to show custom fields and work with custom fields

View File

@@ -1,18 +1,63 @@
# DATA TABLES
# Data tables
[Under construction]
Data tables are used to view, report, bulk edit or open AyaNova business objects for editing.
overview
## Data table common menu options
Most data tables in AyaNova share the same common menu options. These options might not be available for _all_ forms depending upon the Roles assigned to the current User or the type of AyaNova business object being listed.
Some of the main forms are not related to a specific business object
#### Report
This menu option opens a list of [reports](ay-report.md) available to be rendered from this data list.
[Filtering](#filtering-data) affects which records will be rendered in reports; what is available in the data table is what is sent to the report rendering engine. So, for example, if you filter for only work orders from the current week that is what will be reflected in the report.
Individual records can be selected for reporting by checking the checkboxes in the leftmost column when available in which case only the records selected will be sent to the report rendering engine.
In most cases reports will display the data in the same sorting order as being viewed in the data table however some reports have their own built in logic to re-sort or group the data for specific scenarios which will override the sort order presented in the data table.
#### Last report
This menu item shows the name of the last report rendered in this form to save time in selection when the same report is regularly used.
#### Extensions
[Extensions](ay-extensions.md) provide a way to perform an operation of some kind over multiple records at once, for example mass deleting selected records or tagging them.
The Extensions menu item works with data selected similarly to how reporting works:
[Filtering](#filtering-data) affects which records will be sent to the extension for processing; what is available in the data table is what is sent to the extension.
So, for example, if you filter to a specific sub-set of records only those records will be processed by the extension.
Individual records can be selected for processing by checking the checkboxes in the leftmost column when available in which case only the records selected will be processed.
#### Search
The search menu item links to the [search form](home-search.md) and automatically causes the search form to only show results for the type of object that was being viewed in the data table before clicking search. For example if you are viewing a Customers data table then clicking on search will automatically select `Customer` as the only type to search for.
#### Help
The help menyu item will open a specific help document from the manual related to the form being viewed.
#### About AyaNova
About menu option will open the [About form](ay-about.md) which displays the version information and other information and links helpful for technical support and diagnostic / troubleshooting purposes.
elements of the data table
filtering
### Filtering data
### Filtering dates
When viewing data in AyaNova that is filtered with one of the relative date filters (for example a filter of "TODAY"), this time zone setting is taken into account in order to ensure that the user sees data appropriate to *their time zone*. This means that two people with browsers in different time zones using a filter of TODAY for a date field may see different list of results from each other.
When viewing data in AyaNova that is filtered with one of the relative date filters (for example a filter of "TODAY"), this time zone setting is taken into account in order to ensure that the user sees data appropriate to _their time zone_. This means that two people with browsers in different time zones using a filter of TODAY for a date field may see different list of results from each other.
todo: document that emojis can be used in any text field and key combo on windows is winkey-period
-other os's too?
-other os's too?
todo: WIKI controls
@@ -21,17 +66,17 @@ todo: DATA TABLES link to it's own page
Need help page specific to DataTable usage, link to it from the top of all manual pages that are for DataList UI pages (e.g. Customers page)
Note: arbitrary 1024 max char text field length, truncates after that.
Note: Special note to indicate that filtering by a column then hiding that column is supported as a feature
User won't see the filtered column if they hid it but the filter still applies
User can tell it's still filtered by the prescence of the filter reset button (circle with X inside) to the right of the filter selection list
note: filtering system, column view system, saving filter, case sensitivity, tokens etc
User won't see the filtered column if they hid it but the filter still applies
User can tell it's still filtered by the prescence of the filter reset button (circle with X inside) to the right of the filter selection list
note: filtering system, column view system, saving filter, case sensitivity, tokens etc
hidden query-affecting columns: Data Table column selector button will change to larger and accented when this is the case and the column selector form will highlight these hidden columns that affect the view with raised elevation, accent color and filter+sort icon (both show, there is no distinction which type of way it's affecting)
Data table filtering on Duration / interval type columns:
Data table filtering on Duration / interval type columns:
Filters are limited to greater than or less than due to nature of this type of data which is very hard to match precisely due to millisecond differences
making equals or not equals useless for exact comparison. In addition these types of fields always have a value even if it's zero so they don't work with Has value / no Value either
making equals or not equals useless for exact comparison. In addition these types of fields always have a value even if it's zero so they don't work with Has value / no Value either
Greater than and less than can be used to match any value desired by using two filters one greater one less and use of the OR or AND option as appropriate
Case sensitivity and filtering - controlling
## Data Table TAG filters
All tags are lower case always, case is not relevant in Tag filters.
@@ -41,27 +86,32 @@ Order is not relevant in Tag filters, so {green, red} is no different than {red,
### Filter types supported
#### Equality
Exactly equal compare entire search term array to tag array in db - all terms in search exactly present and no others in db record
e.g. {red,green,blue} will return records with tags {green,red,blue} but *not* match {red,green,blue,orange}
e.g. {red,green,blue} will return records with tags {green,red,blue} but _not_ match {red,green,blue,orange}
#### Not equal
The opposite of Equality; specifically exclude rows that exactly match all the search terms
e.g. {red,green,blue} will return records with tags {red,green,blue,orange} but *not* match {green,red,blue}
e.g. {red,green,blue} will return records with tags {red,green,blue,orange} but _not_ match {green,red,blue}
#### NO value
Will return records with no tags set at all
#### Has value
Will return records with any tag set
#### Contains
Returns records that contain the specified search tags. Records may have other additional tags but that's ok as long as it has the search term ones
Returns records that contain the specified search tags. Records may have other additional tags but that's ok as long as it has the search term ones
e.g. {red,green,blue} will return records with tags {green,red,blue} and also {red,green,blue,orange}
#### Not contains
All terms in search query *NOT* present in db record, don't care what else is in db record as long as it's not the search terms (order insensitive)
e.g. {red,green,blue} will not return records with tags {green,red,blue} and also not return {red,green,blue,orange} but would return {red,green,black}
All terms in search query _NOT_ present in db record, don't care what else is in db record as long as it's not the search terms (order insensitive)
e.g. {red,green,blue} will not return records with tags {green,red,blue} and also not return {red,green,blue,orange} but would return {red,green,black}
sorting

View File

@@ -1,18 +1,20 @@
# SELECT LISTS
# Select lists
## Overview
Select lists are used to select and / or filter for a value on forms. For example a Part on a Workorder form.
Select lists are used to select and / or filter for a value on forms. For example a Part on a Workorder form.
Select lists can be [customized](adm-global-select-templates.md) for each object type so that they will display one or multiple fields from that object type.
By default the Name of an object will *always* be present in that object type's select list template in addition to any other fields selected for that object type's select list template.
By default the Name of an object will _always_ be present in that object type's select list template in addition to any other fields selected for that object type's select list template.
They are also used to open the record selected in them or a new record if no selection has been made.
## Selecting
A maximum of 100 items are returned by the server for any select list and clicking on a select list will cause it to drop down and by default fetch the first 100 records found for that type of object in the AyaNova database. For objects that there are less than 100 of this is often all that is required to select the item you need. However for larger lists a filter will be necessary.
### No selection item
A maximum of 100 items are returned by the server for any select list and clicking on a select list will cause it to drop down and by default fetch the first 100 records found for that type of object in the AyaNova database. For objects that there are less than 100 of this is often all that is required to select the item you need. However for larger lists a filter will be necessary.
### No selection item
Select lists have a special item represented by a single dash character `-` which indicates that no selection has been made for that item.
## Filtering
@@ -29,38 +31,48 @@ Tags will only display if added to the template but you can always filter for th
### Case sensitivity
By default AyaNova filters are case **in**-sensitive. This can be changed in the Adminstration -> Global settings form `Filtering is case sensitive` checkbox. Setting this to checkmarked (true) means that all filters will be treated as case sensitive so for example filtering a list for "group" will NOT match to "Group".
By default AyaNova filters are case **in**-sensitive. This can be changed in the Adminstration -> Global settings form `Filtering is case sensitive` checkbox. Setting this to checkmarked (true) means that all filters will be treated as case sensitive so for example filtering a list for "group" will NOT match to "Group".
### Filter by text
A single string of text with no spaces can be entered into the control to bring back results that *contain* anywhere in their name or templated fields that text entered.
Multiple separate text queries are *not* supported, so for example this filter `paul pero` is not valid.
A single string of text with no spaces can be entered into the control to bring back results that _contain_ anywhere in their name or templated fields that text entered.
Multiple separate text queries are _not_ supported, so for example this filter `paul pero` is not valid.
The server will filter all the fields that are specified in the select list template for that type of object.
By default filters are *not* case sensitive however that can be adjusted via [Global settings](adm-global-settings.md) if required.
By default filters are _not_ case sensitive however that can be adjusted via [Global settings](adm-global-settings.md) if required.
Filtering, sort order and case sensitivity are affected by your [Server locale setting](ops-server-locale.md)
For example if you want to quickly select a Customer named "Paul's Perogies" you could type `pau` and up to 100 of the Customers with "pau" anywhere in their select list template would be returned for selection. You could also type `per` which would also match to "Paul's Perogies" and any other Customers with "per" anywhere in their template.
For example if you want to quickly select a Customer named "Paul's Perogies" you could type `pau` and up to 100 of the Customers with "pau" anywhere in their select list template would be returned for selection. You could also type `per` which would also match to "Paul's Perogies" and any other Customers with "per" anywhere in their template.
### Filter by tag
A tag query is a string of text with no spaces that starts with two consecutive periods, i.e. `..north` will filter for all objects tagged with tags that contain the text "north".
You can always filter for an object by [Tag](ay-start-form-tags.md) even if it's not set to display in the select list template for that object type. If the select list template has had tags added to it they will display in the selection list as a comma separated list of all tags e.g. "Paul's Perogies zone1,north,etc" but even if they are not added to the template they will still be filtered when a tag query is entered.
You can always filter for an object by [Tag](ay-start-form-tags.md) even if it's not set to display in the select list template for that object type. If the select list template has had tags added to it they will display in the selection list as a comma separated list of all tags e.g. "Paul's Perogies zone1,north,etc" but even if they are not added to the template they will still be filtered when a tag query is entered.
Just like text filters, tag filters will match to any position in the tag name, so for example if you were filtering for an object tagged with "outside-service" you could enter `..side` and it would match all tags that contain those letters.
### Combined filters
You can also filter by tag and by text combined, for example entering `aul ..side` indicates you want to filter all text for the letters "aul" and all tags for the letters "side" which is useful to narrow down the filter quickly to very specific records.
### Item not appearing in results?
Inactive records are not valid for selection in many forms so if you are filtering for an item that is set to Active=false it likely will not appear in your results on most forms by default.
### Opening selected record
If the selection list is displaying objects that you are able to open for editing, an edit icon will appear beside the control ![edit icon](img/form-select-list-open-record-icon.png) and clicking on that icon will directly open the edit form for that record or a empty for for a new record if the special "-" no selection item has been selected. This is a quick way to get to the object from another object's edit form. You will be prompted to save changes first if you have any unsaved changes.
![edit icon](img/form-select-list-open-record-icon.png)
If the selection list is displaying objects that you are able to open for editing, an edit icon will appear beside the control and clicking on that icon will directly open the edit form for that record or a new empty record if the special "-" no selection item has been selected.
This is a quick way to get to the object from another object's edit form. You will be prompted to save changes first before the new form opens if you have any unsaved changes.
### Clear button
The select list has a clear button that can be used to quickly erase the contents of the select list to save a step when you want to enter a new filter.
## Customizing pick list template
The choice of fields displayed and filterable in the select list can be [customized](adm-global-select-templates.md).
The choice of fields displayed and filterable in the select list can be [customized](adm-global-select-templates.md).