carbonldp / carbonldp-workbench Goto Github PK
View Code? Open in Web Editor NEWWorkbench to administer an on premise installation of Carbon LDP's platform
License: Other
Workbench to administer an on premise installation of Carbon LDP's platform
License: Other
As a developer, I would like for the Workbench to inspect the version of my Platform and Workbench and conveniently let me know on the screen whether or not updates to either are available.
Design and build the new features the Workbench will have with the possibility of real-time capabilities.
One of such features could be real-time notifications, so we need to design and implement an area to display such notifications.
Another feature could be to refresh documents properties immediately after a change is made to it.
This issue is related to #56 , if you reproduce this error and after that, you try to delete a document with the trash icon on the top you getting an error.
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'state' of undefined
TypeError: Cannot read property 'state' of undefined
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.delete_node (0.63dc1e304e246417972e.chunk.js:1)
at DocumentTreeViewComponent.emptyNode (0.63dc1e304e246417972e.chunk.js:1)
at 0.63dc1e304e246417972e.chunk.js:1
at ZoneDelegate.invoke (polyfills.ca4447d0991a01fbd3bd.js:1)
at Object.onInvoke (app.43679dca33355c574d85.js:1)
at ZoneDelegate.invoke (polyfills.ca4447d0991a01fbd3bd.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.redraw_node (0.63dc1e304e246417972e.chunk.js:1)
at e.jstree.plugins.wholerow.delete_node (0.63dc1e304e246417972e.chunk.js:1)
at DocumentTreeViewComponent.emptyNode (0.63dc1e304e246417972e.chunk.js:1)
at 0.63dc1e304e246417972e.chunk.js:1
at ZoneDelegate.invoke (polyfills.ca4447d0991a01fbd3bd.js:1)
at Object.onInvoke (app.43679dca33355c574d85.js:1)
at ZoneDelegate.invoke (polyfills.ca4447d0991a01fbd3bd.js:1)
at resolvePromise (polyfills.ca4447d0991a01fbd3bd.js:1)
at resolvePromise (polyfills.ca4447d0991a01fbd3bd.js:1)
at polyfills.ca4447d0991a01fbd3bd.js:1
at ZoneDelegate.invokeTask (polyfills.ca4447d0991a01fbd3bd.js:1)
at Object.onInvokeTask (app.43679dca33355c574d85.js:1)
at ZoneDelegate.invokeTask (polyfills.ca4447d0991a01fbd3bd.js:1)
at Zone.runTask (polyfills.ca4447d0991a01fbd3bd.js:1)
at drainMicroTaskQueue (polyfills.ca4447d0991a01fbd3bd.js:1)
at ZoneTask.invokeTask [as invoke] (polyfills.ca4447d0991a01fbd3bd.js:1)
at p (polyfills.ca4447d0991a01fbd3bd.js:1)
defaultErrorLogger @ app.43679dca33355c574d85.js:1
I was modifying a property in one of my documents, this property was at the very bottom of the document explorer, so I was using the scrolling bar.
I changed the property's value, and clicked on the "green checkmark icon". I thought that saved my document, but was not the case. There was a non-visible (because of the scrolling) blue button that needed to be clicked in order to really save the document.
Design and implement two information widgets in the dashboard.
We should be shooting to support evergreen browsers, I think (e.g. latest versions of Chrome, Firefox, Internet Explorer, and Safari). Recently I worked with a BETA user who was using Safari and witnessed several issues in the workbench, which the user did not experience when using Chrome. When executing my own test in Safari, I note that not all of my applications show in the list of applications on the dashboard (empty rows show, however). There are other issues too, which I think you'll find if you check in Safari.
If, for the BETA, there is very good reason for us to exclude Safari (from a cost/benefit perspective), we need to make an issue to be sure to clearly denote browser support for the Workbench in public documentation. In that case, we should probably also test for browser and present some kind of message to the user that it is an unsupported browser.
When I access http://localhost:8000/login, I get the login page. However, when I just hit http://localhost:8000 alone, I get a 404 page from the server.
Since the Workbench uses angular 2 and angular 4.4.3 for the alpha version, we need to upgrade the angular packages to v5, which was released recently.
https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced
Depends on CarbonLDP/carbonldp-panel#19
The SPARQL client seems to accept relative URIs, but if one does not provide anything in the Endpoint URI
input the Execute
button remains disabled.
One can actually write something in the input to enable the button and then erase it and it will remain enabled.
An indication of relatives URIs must be set, and/or some default value like /
or the host
of the connected platform.
When you expand an element without opening it, and after you double-click it, the elements disappear. This occurs only in the UI because after refreshing the browser, the elements are still there.
The console display these errors:
EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'state' of undefined
TypeError: Cannot read property 'state' of undefined
Unhandled Promise rejection: Cannot read property 'state' of undefined ; Zone: angular ; Task: Promise.then ; Value: TypeError: Cannot read property 'state' of undefined
Prepare Workbench to handle the new error messages from the platform
We need to refactor the platform to address the implications of the new version of the platform.
What needs to be addresed is the following:
In Workbench: v1.0.0-alpha.2, I am able to select ".system/" and "vocabularies/", click the delete button, and get to the delete confirmation view...
I did not attempt to click Yes to delete one of these containers. However, since these are system containers, should we be able to even get this far? I would expect that maybe we want to either disable the delete button for those two containers or provide a special message when you attempt to delete them.
Please let me know when the refactor of the workbench is done, so we can update the screenshots in the documentation to reflect the new workbench
It appears to me that you can only run a backup on-demand. The label, therefore, "Schedule a backup", is currently misleading. Maybe we put this with the intent of providing schedule capability, but unless and until we have it, I would suggest we state the function more explicitly.
Because the bNodeIdentifier
will no longer exist and the Workbench heavily use this property, we need to refactor the Document Explorer to correctly implement the new BNodes syncing.
Change purple background color, to original dark gray.
Currently when using third party libraries that require their own styles, the Workbench uses some 'hacking' by querying the <head>
tags and importing the styles by adding the respective <link>
tag to the <head>
if not present.
This of course goes against the recommended approach of using Webpack to optimize those styles files.
We should a set up to tackle this case, one way of doing it is by using the recommended approach by AngularClass starter project: https://github.com/AngularClass/angular-starter#external-stylesheets
Favicon is not showing on tabs, title is wrongly displayed.
As a user, I would like to be able to see the version and build number in some "About" place somewhere in the workbench (for both the platform and the workbench).
The list of features that need to be implemented are the following:
Currently, we have not indicated anywhere that an App description is required by the REST API. Indeed, it is possible to create a new app without a description when using the REST API. But, within the Workbench, this field (in the New App form) is required. I think it will be best to keep the Workbench as closely aligned to the REST API as possible in that regard. It's arguable, perhaps, but it did cause some minor confusion for me when attempting to edit an app AFTER creating the app through the REST API.
We need to implement AOT compiling so we can provide an ever faster website.
This means that instead of making the user to download the angular compiler causing a just-in-time compilation (JIT) we must better provide the compiled version of the app, getting rid of the unnecessary libraries (AOT).
This must also needs to be implement using Webpack.
Related:
https://github.com/UltimateAngular/aot-loader
https://angular.io/docs/ts/latest/cookbook/aot-compiler.html
Due to some issues being found with the current bundler (JSPM), such as ignoring versions and upgrading them whenever it wants, we need to migrate the project to a more robust and more used module bundler such as Webpack.
The Workbench breaks when trying to display the version and the information of the platform.
This only occurs on v1.0.0-alpha.6
of the platform.
The issue was reported by @alex-arriaga through the Carbon LDP Gitter channel.
The problem seems to be an eager activation of AuthenticatedGuard
, causing a call to the inject()
method from angular2-carbonldp/boot
before the application module finishes bootstrapping.
Because the platform will support the CRUD of AccessPoints, we need to bring back those features to the Workbench.
In the latest version 0.7.1 of the Workbench, the Delete icon is enabled when the App admin role is selected. Also, if I click the delete icon, while on the App admin role, it takes me to the next screen asking me if I'm sure I want to go ahead. The delete icon should not be enabled when that role is selected and the user should not be presented with the option to delete the root Admin role for an app.
It seems like it would be a nice-to-have feature to not have to refresh the browser when verifying documents, newly created, go into a container. It could be cool if the expanded parent container updated its contents automatically when I made updates in another process.
Another vote:
AlexSerrano22 @AlexSerrano22 09:37
Hi guys, I have a recommendation maybe it is not a big deal, but if the workbench is an SPA it will be cool that you could refresh your documents tree on the explorer without refresh the page or change to another and go back. I saw that you can refresh a document but you haven't a button to refresh the tree.
In the Workbench, I had a container, "quotes/" with many children (probably like 126 direct member children). To clean up, I went to delete the parent container. I got the confirmation dialog as shown below (except the one I am showing below is just for example)...
I clicked the red Yes button to confirm my desire to delete. Nothing appeared to happen, but I waited just in case. Sure enough, after a few seconds, the confirmation dialog disappeared and I could see that my "quote/" container was gone.
We need to have immediate feedback when the user clicks "Yes". I would expect to see an animated spinner, for example, showing me that the system has accepted my request and is working.
I think this should be required for Release 1.
I noticed when deleting an empty container, the dialog disappears and I see a spinner icon very briefly. So it seems the functionality is intended to be there. But, in the case of a container with many children, I did not see it. I think, perhaps, it's trying to show the spinner after the work, rather than before it?
A nice to have feature would be allowing users to select a set of documents and delete them in a single action, instead of having to delete documents one by one.
With version 0.40.0 of the SDK, some breaking changes were introduced, we need to update the project to the latest version and address these changes.
Stop same error message from being displayed twice
If you use the REST API to create a new application and then use the Workbench to verify it visually, you run into problems. Suppose the example, for example, from the Getting Started with the REST API:
POST /platform/apps/ HTTP/1.1
Host: localhost:8083
Content-Type: application/trig
Prefer: http://www.w3.org/ns/ldp#Container; rel=interaction-model
Slug: taxonomy-hub
Authorization: Basic amFuZS5kb2VAZXhhbXBsZS5vcmc6amFuZTEyMw==
Cache-Control: no-cache
Postman-Token: 6ef4a0c0-7c6b-50bf-3463-ea52e6e9e209
@prefix c: <https://carbonldp.com/ns/v1/platform#>.
@prefix cs: <https://carbonldp.com/ns/v1/security#>.
<>{
<>
a cs:Application;
cs:name "Taxonomy Hub".
}
Issue the POST to create the app. Then you will see the app in the list of apps within the Workbench. At that point, if you go to the Document Explorer, you'll get an error because you need to turn on Allow all origins. So click over, turn on Allow all origins (and add an app description as required) then save. Now, navigate back into the Document Explorer and the error is still there.
I believe that a full page refresh will remedy the issue, but I don't think we should expect users to figure that out.
The document explorer should validate changes against the already existing shapes the platform follows.
We need to upgrade the project to use angular v.4.0.0
AlexSerrano22 @AlexSerrano22 09:48
thanks Cody and another thing I see that on the dashboard page you have a couple of cards with information of your platform, like documents and triples, are you thinking on provide some mechanism to customise this cards? thinking that I'm interested to know how many documents of user type I have on the platform, I know that I could save my query in the SPARQL section but maybe could have a custom card with this query to have a card on the dashboard
Rodolfo Aguirre @roddolf 10:09
One can actually refresh the tree manualy without refreshing the entire page.
You just need to close and open the tree.
(not closing; as I am not confident that is sufficient or intuitive)
Now that every carbonldp-panel
component has been moved into carbonldp-Workbench
, this is a great time to implement a testing suite to add unit tests for each component, service or pipe inside the Workbench.
The proposed suites are Jasmine with Karma.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.