-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tabular Interface for Building Simple Domino Form and View #670
Comments
Here is a mockup to clarify what is expected for the interface: If you want to update the mockup to suggest modifications, here is the mockup file: |
@JoelProminic please be sure that the table of field rows that the user adds can be edited again to add more fields, or edit existing fields. it would then one-way export the results to the ODP. No round-tripping is needed, but we do want to make sure that the table is basically just a visual representation of some XML that defines it. |
@JoelProminic I suggest we build a Domino database that we can export to XML which defines the rules for mapping the fields into DXL. This way, the information is not hard-coded. We could then publish to XML the results of our database for embedding into Moonshine, OR we could actually have Moonshine retrieve dynamically the conversion process so that we can fine tune it on the server side without having to push out new Moonshine IDE releases each time we want to fix or enhance the DXL generation. |
@JoelProminic I do think we are going to need to add support for computed field options, and we need a CDATA tag around them so that the user can enter in whichever optional language they want for these -- probably @function most of the time, but possibly in some cases LotusScript, or SSJS (server side java script) for XPages centric users. We don't need to do anything fancy - just add a multi-line text input and then whatever the user enters gets wrapped into CDATA and put into the DXL. If there are errors with it, then the DXL build will simply fail. |
Do you mean xml schema? |
I discussed the DXL mappings with @JustinProminic and @dpastov. We want to define a DXL template for fields with each valid combination of the below options:
The template should have basic insertion parameters like:
We'll build a database of the different templates, and return it to Moonshine in a configuration file or by a URL. |
To clarify this idea, the information from the Moonshine form (at the top of my mockup above) should be saved as an XML structure representing the Form and Field properties, in addition to the generated DXL form. Then, the user should be able to open the Mooonshine form again using that XML configuration, make modifications, and then generate the form again. We want to do it this way instead of trying to open the generated DXL directly. The user may choose to update the form in Domino Designer to improve the format, and even minor changes could make the DXL unreadable for editing with the above Moonshine table. This option will overwrite any changes made to the form in Designer (or the DXL), but it will be available in case the user feels it will be easier to update the DXL and Domino Form from our interface rather than using Domino Designer. I don't have strict requirements format for this XML file, but we should try to design it so that we can safely add addition form and field properties later. |
@dpastov has built a database of DXL mappings for the fields in this database (not accessible to everyone - this is for my reference): Server: domino-1.dmytro.cloud/DmytroDev Next, we'll need to generate a configuration file based on this that will let Moonshine lookup the DXL by the field type, multivalue, and editable/computed properties. We'll also need to given an example (or configure) a wrapper table. Currently, the database uses formatted DXL (i.e. ). The ODP (#669) uses the raw note DXL instead (). @feather812002 and I noticed some trouble when using the formatted DXL, but we'll need to investigate if some other factor caused the problem. |
@dpastov will be helping with the DXL side. To summarize the plan for this:
@rat-moonshine and @piotrzarzycki21 can build the Flex interface and generate the XML file, but they don't know the DXL format. To populate this, they need an XML file that maps the different field types to a DXL template. The DXL templates should be looked up by these properties:
In addition, they'll need guidance for building the surrounding elements of the form. The form should be a simple three-column table showing the Label, generated field, and Description. We'll need templates for these elements:
The templates could be configured in a simple XML file, initially. We also want to consider getting the XML from a simple agent, so that we can update the UI look and feel without pushing a new release of Moonshine. I updated #669 with some instructions to build an On Disk Project from Moonshine. |
What kind of fields should be presented initially ? |
This is the initial list ? |
No, I defined a list of the required field and form properties for the UI in the original description. I just edited it to move a couple field properties to the Required section. The DXL lookup will be by Type, Multivalue, and Editable/Computed. Name and Formula (%FieldName% and %ComputedValue% in my comment) will be insertion parameters in the Field DXL. Label and Description will be used when generating the table row. Include in View and Sort Options are used for generating the view. |
Thanks @JoelProminic . @rat-moonshine I have to ask you to start looking into that issue instead of me. I may not be enough active in the next 2 days as I wanted to, maybe you will get something done for that. I believe you may be more efficient in cooperation with Bing. I think you should use his branches when you reach the point of conversion to DXL. I would use in MockupVisualEditor his branch https://github.com/prominic/MockupVisualEditor/tree/features/issue_646_ve_notes_domino_support and in VisualEditorConverterLib. We in theory should use part which he implemented to create those Forms. I will assist you in checking the code and coordinates anything. I'm sorry for this one. |
[Edited] We still need a plan to blend #646 stuff into #669 . Perhaps we can implement this into #669 branch (or a sub-branch of it) using the https://github.com/prominic/MockupVisualEditor/tree/features/issue_646_ve_notes_domino_support and https://github.com/prominic/VisualEditorConverterLib/tree/features/issue_646_ve_notes_domino_support, and when #669 already has particular type of file-extension (.dfb) management etc. What do you think? Furthermore, what sort of initial support you want me to put in for this first stage. i.e. creating interfaces based on needs, initial object structuring etc. ? I'll be glad to help, anyway. |
To help further illustrate the design that @JustinProminic and I described, I created a basic template using the #646 build. The insertion parameters have the format "%Identifier%". The form template looks like this. The note and noteinfo attributes are probably populated by the On Disk Project code, so we'll need to clean these up for the actual template:
The rows (%InsertRowsHere%) would then have their own template:
And then the field (%InsertFieldHere%) would be looked up from an XML file/agent provided by @dpastov. Each template might look something like this:
|
|
- Merged OnDisk branch and removed conflict (reference #670)
- Necessary modification to OpenFileCommand (reference #670)
…tabular_interface (reference #670)
This issue is now now merged into 'master'. Following repositories are in effect:
|
Did you have any conflicts? |
No. |
@rat-moonshine Did you build and update VisualEditor and all the libs which are required to be updated ? I have now when I'm trying to build Moonshine.
|
I mainly updated the branches to build correctly on Bamboo. I re-updated the local SWCs now. Please, give a test. |
I have tried today and I'm not able build Moonshine. I have same error as above. |
I have resolved issue. If I broke something let me know. |
This probably a leftover, thanks for the removal. I see Bamboo build without a problem so the change shouldn't cause any trouble. |
Moving this for next release. No announcement in CHANGELOG |
This also same as #669 and included in 'master', so it doesn't make sense to push back to v3.1.0 unless we have a problem that needs some time to address. Justin also suggested pushing these features in v3.0. |
@rat-moonshine Same story as I commented here -> #669 (comment) |
In #646, we have been working on updating the Visual Editor to build a Domino form. However, in the general use case, the user doesn't really care about the specific layout - they just want to quickly populate the form with list of fields, and then create a corresponding view to populate these documents. We would like to create form to populate this form and view.
This form would be available for On Disk Projects. We have been working on an On Disk Project template for #646, but this will need to be separated out from the Visual Editor code. The Form and View will be generated into DXL (Domino XML) format, and then the code in the On Disk Project can handle importing them into a Domino database.
The new form should have the following inputs:
The field list should be a datagrid or a list that is populated with a subform. The user should be able to order this list as they prefer, and it will determine the order of the fields in the form and view. Here are the options I expect us to provide for each field:
Here are additional fields that we will want to support in the future. I think we can exclude them from the initial version to simplify the interface.
The form should then be generated as a table with three columns:
The generated form and view should also have reasonable shared actions applied from the On Disk Project template.
We will create an example of forms and views in Domino and provide screenshots and example DXL files.
EDIT: Another feature that we should consider for this is the ability to convert an unmodified form and view generated from this tool back into the original parameters, so that it can be edited and regenerated. If there are user modifications, they would be lost when converting back, if we could even parse them correctly. This doesn't need to be a feature with the initial release, but we should start thinking about how we could convert back when building the DXL output.
EDIT: Here is an explanation of how the Sort Option value converts to DXL attributes:
The text was updated successfully, but these errors were encountered: