-
Notifications
You must be signed in to change notification settings - Fork 4
Cascading Directory file inheritance
Quicc prefers inheritance and convention over configuration, as such it modifies what you would consider "normal" directory behavior.
- Somewhat represents the Path variable in shells - only more permissive.
- Index.quicc is a special file name, it is the starting page applications - all login's land on some/directory/Index.quicc
- Within the quicc files we don't refer to file extensions (files are called forms).
- We don't have OS absolute paths, project absolute paths //name/ are still relative.
##include files and page links All file names are scanned, i.e. if a file(and partial path) does not exist in the current folder, the search will ascend up the folder tree, and if not found, it will scan across the build roots (zx.build_roots = ["Config", "Custom", "Standard", "Lib", ""]); Once we have npm plug-ins it will also scan the plug-in folders.
This scan order enables the ability to have "library files" that can be included automatically but that can still be overwritten by our standard or custom files. Normally the Lib will be a framework folder.
We can also have some conditional use of the custom folder, for example if you have a customer that has commissioned a customized version of a few pages, those pages can be located in the Custom folder and compiled conditionally, on a customer code or URL for example.
##Auto Menus and Model files
Auto menu file searches are specified by <#ScanMenu but Model files are always collected from the Models* directories. Each file name is considered unique when scanning, and scanning will stop when the first one is found . This allows you to create custom files closer to your applications source and Libs can sit far away.
It is important to choose a (reasonably) unique file name for your model and menu files, especially when the are placed common arias to avoid them from being over ridden.
The model files will normally sit in the project root as they may be used between many applications.
The menu files will typically sit in the application folder as they would be unique to the application. But if you have menu items common to all the applications in a project it can be placed in the project root which will then include it in all the applications for that project. Typical uses may be an "about" menu or Mail pages.
##Customizing within pages the file hierarchy allows customizing per application, but you can also further customize pages per users, user groups or user key lists (more on that later).