Currently the only way to request data from the APIs is to send the appropriate data via the "request" parameter. While this gives a lot of control it's also quite cumbersome to create a request. To make this simpler the requests should also support "direct parameters".
Examples
https://host.name/api/json/?m=categories&a=view&e=all&title=textView all categories that match the title "text".If the "m" parameter is set it should set up a Data object and setRequestValues, i....
The amount of control fields (that are always present in modules) keeps growing which limits the field names available. Introducing the underscore in the _stp field was an attempt to make them unique enough to not collide with "normal" field names people may want.
The problem there however is that it currently can't be used in the templates format class as that uses underscores to indicate marker types (e.g. _if). This can of course be changed but that would mean all templates requir...
The CMS should support "wizard" mode (yes the good ol' windows wizards...). This can be done using the "groups" to only display the fields in the relevant group. By clicking next, it goes to the next page (i.e. group). Once all required
fields are filled or it reaches the last group it'll shows the "submit" button.
Certain area's of JAS may need mutex to ensure correct functioning. Caching being one example (although overwrites don't matter too much) however there may be more areas where this applies...
The JAS backend is starting to have a nice collection of HTML layout functions that should probably be available generically:
function menuItem($menu, $content, $action=false, $title=false, $icon=false, $properties=false)
function menu($menu, $class=false)
function tableRow($table, $header=false, $properties=false)
function tableColumn($table, $content, $action=false, $title=false, $properties=false)
function table($table, $class=false)
function cms(&$d, $url=false, $confi...
The array field type forces in/not in as the operator, while supported by MySQL, it's unavailable in the other storage objects. For the Session/XML storage objects it should be pretty straightforward as _filterDataset provides a nice hook. The API storage object will require some different logic for this.
Once this is available for all storage objects the internals of JAS (e.g. references data gathering) can use the in/not in operator.
JAS will need to support Encryption / Decryption for a variety of ciphers. It should also support hashing algorithms (MD5, SHA, etc) so it can replace the passwords hashing in the Data object.
JAS already support RSS formats for parsing and rendering but it should also have an API. It will probably be limited to read-only and it will be somewhat different from the other APIs. The idea is to work with templates to have some flexibility in defining the message format. Additionally it should probably support default rendering for all modules. Modules
/api/rss/module name/ will generate an Atom 1.0 feed like so:
<title>Title field value</title>
<summary>Same a...
It would be handy if new reference can be added quickly for modules that only require the "title" field to be provided when adding a new entry. So instead of showing a (multi)dropdown a text field will be shown with the current referenced entry/entries. If a non-existing entry is added to the text field it will be automatically added as a new entry.
Additionally it should show a quick dropdown (i.e. listOptions) with all available entries to quickly selected them. For multi referen...
The JAS backend should have a help section included. Probably the easiest is to just reference the online documentation "Backend" on the website. One idea is to have an ? icon somewhere which shows the related documentation pages. This can than automatically download and show the content on the website.