Skip to content
This repository has been archived by the owner on Nov 16, 2019. It is now read-only.

Toolbar 1.0 #2

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Conversation

ikostova-Tick42
Copy link

"glue-interop-api-impl" and "glue-fdc3-access-impl" dependencies are removed
fix for window collapse/expand related to the latest electron

@rikoe
Copy link

rikoe commented May 30, 2019

Can we please keep making changes to the same PR instead of creating a new one? You can do this by continuing committing changes to the same branch as for the original PR.

Otherwise we split comments over multiple PRs and we are not sure whether comments on one PR was addressed by commits to another.

I am not sure whether to review this one or the previous one now, but I am going to pick this one since it is newer.

@ikostova-Tick42
Copy link
Author

ikostova-Tick42 commented May 30, 2019 via email

Copy link

@rikoe rikoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this contribution! Looks good. Nothing major needs to be changed, but the context data interface being used is currently not FDC3 1.0 compliant, and that needs to be fixed before this can be accepted as part of FDC3's projects.


### Prerequisites

You will need node.js & npm as well as a globally installed electron (npm i -g electron).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please specify the minium version of node and npm required, if any.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Node.js and npm minimum versions are added

- run build-ui.bat
- run build-app.bat
- run start.bat

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am highly opposed to including Windows batch files in the source code, as it is not platform-agnostic. Node, npm and Electron are all platform-agnostic and if they are the only prerequisites (as stated above), then the build and run scripts should be too.

Node and npm makes this straightforward by including task scripts in package.json that can then be run with npm start and npm run build etc.

Can you please try to replicate the contents of the batch files as package.json scripts, I am happy to help if needed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We tested the building and starting of the project on Windows. We will test on MacOS and we’ll add instructions and update the build process.

README.md Outdated

#### <a name="appd-poc-provider"></a> AppD PoC provider

In order to use the Glue42 FINOS FDC3 App Directroy toolbar, you need to have AppD services to connect to. If you do not have access to services, you can run your own instances using the [appd-poc](https://github.com/FDC3/appd-poc), a Java server. Steps to run:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"App Directory" not "App Directroy"

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this project is to be hosted inside the FDC3 organisation on GitHub l, it cannot be branded as "Glue42 FINOS FDC3 App Directory Toolbar".

Please call it "FDC3 Demo Toolbar" or something similar. If you would like to keep the branding you are welcome to host it on your own organisation's GitHub - we don't use organisational branding for projects in FDC3.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Title is updated, typo is fixed.

- Launch the appd-poc

- Register a user with the appd-poc

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there instructions for the above steps?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README.md contains a link to the AppD Services with instructions.

README.md Outdated

##### [org.finos.fdc3.demo](./app/apps/schemas/org.finos.fdc3.demo-manifest-schema.json)

Support for starting application of manifestType `org.finos.fdc3.demo.host` is scheduled for version 1.1. This manifestType is used for applications that are started via the FDC3 API.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true? If so I am not aware of it. Can someone from AppD WG confirm this?

We should be careful of including statements about future versions of FDC3 that may change before release.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The statement is updated.

Support for starting application of manifestType org.finos.fdc3.demo.host is scheduled for version 1.1 of the Toolbar. This can be viewed in the FINOS Plexus Interop API examples. This manifestType is used for applications that are started via the FDC3 API.

<html lang="en">
<head>
<meta charset="utf-8">
<title>Glue42 FINOS FDC3 AppD demo application config</title>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference in vendor-agnostic FDC3 repo.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference is removed.
<title>FDC3 Demo Toolbar application config</title>

<html lang="en">
<head>
<meta charset="utf-8">
<title>Glue42 FINOS FDC3 AppD demo logs</title>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference is removed.
<title>FDC3 Demo Toolbar demo logs</title>

<html lang="en">
<head>
<meta charset="utf-8">
<title>Glue42 FINOS FDC3 AppD demo provider config</title>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference is removed.
<title>FDC3 Demo Toolbar provider config</title>

<html lang="en">
<head>
<meta charset="utf-8">
<title>Glue42 FINOS FDC3 AppD demo toolbar</title>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glue42 reference is removed.
<title>FDC3 Demo Toolbar</title>

The UI is oriented towards developers who are investigating the AppD service, for example it provides easy access to view the JSon definitions of the applications and to easily view the log files. However the UI is functional and a production oriented toolbar could easily be created by removing access to some features.

The UI shows the integration of the FDC3 AppD Services API and the FDC3 API used to launch applications.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems a lot of the information above is relevant to the repository as a whole and not just limited to "toolbar-ui-angular" and its README.

I am slightly confused what the relationship is between the "app" component and the "toolbar-ui-angular" component and how they work together.

I think this should be clarified in the root README for this project:

  • Overall context
  • What components are included
  • How do they relate to each other
  • How do you run all the components + any dependencies and make them work together

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README.md is updated.

App Directory Demo Launcher aka Toolbar

This Toolbar, contributed by Tick42, connects to one or more FINOS FDC3 compatible application directories that implement the FDC3 App Directory REST API https://fdc3.finos.org/appd-spec. The Toolbar will show all the defined applications, and will attempt to launch applications that are defined by a supported Manifest type.

The Toolbar can also show a set of favourite applications as Icons in the main Toolbar.

The Toolbar is primarily aimed at developers working with FINOS FDC3, it provides easy access to the application definitions and to the log files to allow developers to explore the services.

Toolbar components

The Toolbar is separated into two main components

app

The app component is a standalone Electron application. It also includes wrappers for the App Directory services.
It loads the Toolbar window with a URI that is stored in ./toolbar-ui-angular/dist.

toolbar-ui-angular

The toolbar-ui-angular component is the Toolbar window displayed by the Electron application. It is written with Angular 7.
By default the Electron application starts the Toolbar window in file mode.

The Toolbar is currently aware of the following manifest types:

  • 'org.finos.fdc3.demo' - covers browser/exe and therefore is platform/host independent
  • 'org.finos.fdc3.demo.host' - covers platform/host specific applications

Copy link

@rikoe rikoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still cannot build the ui app:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/glue-interop-api-impl - Not found
npm ERR! 404 
npm ERR! 404  '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'toolbar-ui-angular'
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/riko/.npm/_logs/2019-06-14T13_07_43_102Z-debug.log

@rikoe rikoe mentioned this pull request Jun 14, 2019
@ikostova-Tick42
Copy link
Author

ikostova-Tick42 commented Jun 14, 2019 via email

@rikoe
Copy link

rikoe commented Jun 18, 2019

Hi Riko, This was fixed in PR #2 – the package has been removed.

Apologies @ikostova-Tick42 , I was building on the wrong branch.

@rikoe
Copy link

rikoe commented Jul 4, 2019

Hi @ikostova-Tick42 - I haven't had a chance to look at this again recently, I will try to take a look soon!

One question - should we rename the PR to say something different than "Toolbar 1.0" until we can work through remaining issues, if any? A 0.7 or 0.9 feels more appropriate at this stage, but tbh we don't necessarily have to "version" the code right now.

@maoo
Copy link

maoo commented Jul 12, 2019

I was able to build, validate and run the Toolbar-1.0 branch; as discussed on chat with @rikoe , I'm dropping the steps to reproduce the build here for reference.

# Cloning and switching to right branch "Toolbar-1.0"
git clone https://github.com/ikostova-Tick42/appd-launcher-poc.git
cd appd-launcher-poc
git checkout Toolbar-1.0

# Validating appd-toolbar license
rm -rf node_modules ; npm i --production
node-license-validator . --allow-licenses MIT Apache
# Returns "All licenses ok."

# Building appd-toolbar
npm i && npm run build

# Validating toolbar-ui-angular license
cd toolbar-ui-angular ; rm -rf node_modules ; npm i --production
node-license-validator . --allow-licenses MIT Apache Apache-2.0
# Returns "All licenses ok."

# Building toolbar-ui-angular license
npm i && npm run build

To run it, simply execute

npm install -g electron
electron app-js/main.js

Hope this helps.

Copy link

@rikoe rikoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ikostova-Tick42 @maoo I am still having lots of issues with the build. I have made sure I am on the right branch this time (doh!) and to follow your instructions closely @maoo.

I am building on Mac - the issues I am having are around installing npm packages and building toolbar-ui-angular, specifically node-sass. It may be that the issues are due to my environment/setup.

I don't want to hold you up any further though (sorry!), so let's merge the PR, and address any further problems in the usual GitHub way - creating an issue and submitting individual PRs to fix them.

@brooklynrob
Copy link

@ikostova-Tick42 @lspiro-Tick42 See comment I just added to the issue created to track to the migration of FDC3 repos into the /finos github org.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants