Closed JoelProminic closed 1 year ago
Here is an example UI to clarify what information should be displayed. @piotrzarzycki21, I am flexible about how this UI is presented, but hopefully this clarifies my request.
The format for the nomad links is like this: https://nomadweb.europa-1.jupiter.com/nomad/#/Notes://europa-1.jupiter.com/8025739D005C7E54/MainFrameset?OpenFrameset&view=OFDB5408A99659495680257245004427D0
This looks to be the notes://
link appended to https://nomadweb.%server_common%/normad/#/
. From my tests with the notes://
URLs, I can replace the universal IDs with the database and view names. I'll do some experiments with this once I recreate my Super.Human.Installer instance with Nomad installed.
I finally got a local Super.Human.Installer instance set up with Nomad. Note that:
I confirmed I could get the links to work with the database and view names. The format after /#/
is the same as the notes://
format that we already generated, so we can compute nomadURL
easily like this:
Database: https://nomadweb.%SERVER_COMMON%/nomad/#/notes://%SERVER_COMMON%/SuperHumanPortal.nsf View: https://nomadweb.%SERVER_COMMON%/nomad/#/notes://%SERVER_COMMON%/SuperHumanPortal.nsf/Configuration?OpenView
Some notes on the behavior:
https://%ip-address%/welcome.html
)@JoelProminic I have pushed first version of that view to master. Dev build is ready to first review.
The current interface looks like this:
I see that the Database is missing - is this because the property is not populated yet? I have some pending updates to the agent for this issue.
The Open in Client link works properly.
I see that the Database is missing - is this because the property is not populated yet? I have some pending updates to the agent for this issue.
Exactly. If property any item of configuration is not present I'm not displaying it. In above case "database" and "nomad" link are missing.
@JoelProminic I just pushed database name fix, so next dev build should have it.
I populated some more data in the agents locally so that I could test the other interfaces. I haven't committed this yet, since I want to try to do this in a way so that it won't break when @dpastov updates the Genesis API.
Database Link | Display | Copy to Clipboard |
---|---|---|
Server populated | Server displayed | Works |
Server not populated | Not Tested | |
Database not poopulated | Database not displayed | N/A |
Database populated | Fixed | Returns correct value |
View not populated | View not displayed | N/A |
View populated | View displayed | No button |
url populated |
Open in Client displayed, works | N/A |
url not populated |
Not Tested | |
nomadURL populated |
Open in Nomad displayed, works | N/A |
nomadURL not populated |
Button not displayed | N/A |
@JoelProminic I have added button for showing/hiding configuration. I have named that button "Database". We can change name if you think it's not the right one.
@JoelProminic I have made quick fixes for issues which we have found during meeting:
I like the collapsible database options, I think this fits better with the browser actions.:
We could potentially merge the button and the header in this expanded option, but this is not required.
I'll watch for that NPE, but it hasn't triggered so far.
@JoelProminic I have made needed updates to JSON output
https://api.genesis.directory/v1/apps
Here is an output of the agent from superhumanportal.nsf (the version you uploaded a week ago or so). http://localhost/SuperHumanPortal.nsf/GenesisRead?OpenAgent (from my local server)
@dpastov, I see that database
and view
were populated. The update seems to work well with the current production agent implementation as well.
url
and nomadURL
are not populated, but my agent has code for that. I could see it being useful to provide a custom URL in some cases, so the next version of the agent code will not override url
or nomadURL
if you provide them.
I am also working on insertion parameters, but that got interrupted by another task. I'll add the details here when I am done.
I added support for insertion parameters in access.description
and for all properties in the links except type
. Most of these cases are probably not useful, but it was easy to include them.
The current available parameters are:
Parameter | Description |
---|---|
%SERVER_COMMON% |
The common name. This is useful for URLs (though this may not work for all servers) |
%SERVER_ABBR% |
The abbreviated server name (i.e. test-1.test.com/TEST). |
We can add more parameters if necessary. Don't feel obligated to use the parameters if they are not helpful.
I also added support to include views to the generated url
and nomadURL
.
While working on this, I revisted the encoding for the database and view names in the URLs. For example, if I have foo/Test DB.nsf
for database
and bar\Test View
for view
, I am URL encoding the database to get a URL like this
notes:/test-1.test.com/foo%2FTest+DB.nsf/bar%5CTest+View
NOTE: for database this works with both /
and \
, but for View names this only works for \
. If I use forward slashes in the view, I get an error like "Invalid Document" when encoded, or it ignores everything after the first /
when unencoded (in the above case, it would open the bar
view).
@dpastov, also note that the database name is case-sensitive for example for iMessageSMS, I see this link:
{
"database": "iMessageSMS.nsf",
"view": "8. Config",
"name": "NotesDatabase Link (Configuration)",
"type": "database",
"url": ""
}
But the actual database installed by Genesis is imessagesms.nsf. (I also see that I don't have permissions for this database as a member of AutomaticallyCrossCertifiedUsers, but that is something we can discuss separately).
Otherwise, the updates are looking good. @piotrzarzycki21, you can install my agents from the repository if you want to try testing.
I'll plan to do a final review next week and then we can do a release.
Otherwise, the updates are looking good. @piotrzarzycki21, you can install my agents from the repository if you want to try testing.
I'll plan to do a final review next week and then we can do a release.
I did test for your update. Everything seems to be fine.
Right now the name
property is duplicated in the button name and the section header. We would like to replace the section header with a description, which will require a new description
property in the link JSON. If description
does not exist or it is blank/empty, then don't show this header.
@dpastov please add the description
property for the links when you have a chance. We can discuss this more tomorrow if you need more clarification.
I made some updates to support the link descriptions. For now, I hard-coded some descriptions for the Super.Human.Portal app links:
{
"access": {
"description": "Install applications on your Domino server using Genesis. View useful Domino documentation.",
"links": [
{
"database": "",
"view": "",
"name": "Web Interface",
"description": "This is an example link description for Super.Human.Portal.",
"type": "browser",
"url": "/Super.Human.Portal/js-release/index.html"
},
{
"server": "domino-1.demoprod.com/DEMOPROD",
"database": "SuperHumanPortal.nsf",
"view": "Configuration",
"name": "Configuration Database",
"description": "This is an example link description for Super.Human.Portal.",
"nomadURL": "https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/SuperHumanPortal.nsf/Configuration?OpenView",
"type": "database",
"url": "notes://domino-1.demoprod.com/SuperHumanPortal.nsf/Configuration?OpenView"
}
]
},
"AppID": "superhumanportal",
"DetailsURL": "https://genesis.directory/apps/superhumanportal",
"InstallTimeS": 15,
"Installed": true,
"Label": "Super Human Portal",
"InstallCommand": "install superhumanportal"
}
Note that I added description
on both the browser
and database
links. It makes sense to me tht we may want to add some notes to the links, but I'm not sure how this will look in the UI. We can discuss this more tomorrow, but here are some ideas:
I made some updates to support the link descriptions. For now, I hard-coded some descriptions for the Super.Human.Portal app links:
{ "access": { "description": "Install applications on your Domino server using Genesis. View useful Domino documentation.", "links": [ { "database": "", "view": "", "name": "Web Interface", "description": "This is an example link description for Super.Human.Portal.", "type": "browser", "url": "/Super.Human.Portal/js-release/index.html" }, { "server": "domino-1.demoprod.com/DEMOPROD", "database": "SuperHumanPortal.nsf", "view": "Configuration", "name": "Configuration Database", "description": "This is an example link description for Super.Human.Portal.", "nomadURL": "https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/SuperHumanPortal.nsf/Configuration?OpenView", "type": "database", "url": "notes://domino-1.demoprod.com/SuperHumanPortal.nsf/Configuration?OpenView" } ] }, "AppID": "superhumanportal", "DetailsURL": "https://genesis.directory/apps/superhumanportal", "InstallTimeS": 15, "Installed": true, "Label": "Super Human Portal", "InstallCommand": "install superhumanportal" }
Note that I added
description
on both thebrowser
anddatabase
links. It makes sense to me tht we may want to add some notes to the links, but I'm not sure how this will look in the UI. We can discuss this more tomorrow, but here are some ideas:
- Expand the browser links to see the description. The button should still be clickable
- Add the description below or inside the button with smaller text.
Description has been added. Header won't be displayed if description doesn't exists.
I deployed the last builds of the Royale application from here: https://github.com/Moonshine-IDE/Super.Human.Portal/actions/runs/4959806131
However, neither link type is expandable for me, and I don't see the description. It feels like I am accidentally on an old build, but I confirmed that I downloaded and updated this build today...
Now that I can see the updated build, I see this:
And if there is no description:
This looks good. I don't see the description on the browser
link, though. We can discuss if we need this in the meeting tomorrow.
We discussed this today, and we can ignore the description
for browser
links for now. We may revisit this later.
I tried to create a link yesterday including a nested view, and I found that it failed until I removed the view. Doing some more testing with the URL format, using a view called All By UNID\By Creation Date
, I see this behavior:
## NomadWeb
# Opens "All by UNID"
https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID%2FBy+Creation+Date?OpenView
https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID/By+Creation+Date?OpenView
https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID\By+Creation+Date?OpenView
https://nomadweb.domino-1.demoprod.com/nomad/#/notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID%5CBy+Creation+Date?OpenView
# Notes Client
# fails
notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID%2FBy+Creation+Date?OpenView
# Opens "All By UNID"
notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID/By+Creation+Date?OpenView
# Works:
notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID\By+Creation+Date?OpenView
notes://domino-1.demoprod.com/AuthorBookFan.nsf/All+By+UNID%5CBy+Creation+Date?OpenView
In the Java API, both forward and backwards slashes are supported in the view names, but I see the notes://
format expects backward slashes only. Nomad isn't working at all for this case.
We may want to add some clarification for this later, but for now I wanted to at least record my findings.
@dpastov, @piotrzarzycki21,
This is an extension for the logic in #13.
We would like to support access links with
type:"database"
. We currently represent these with singleurl
values using thenotes://
syntax:Instead, I would like to give the users some options for opening the database:
notes://
link. This will require that the hosts file was populated, and may trigger some extra warnings in the client.I intend to return this information for the link: