Tim Donohue [10:57 AM]
@here: just a friendly reminder that our next DSpace 7 UI Meeting starts shortly (top of the hour). The first 30 mins are in #angular-ui (and cover Angular UI updates). The second 30mins are in #rest-api (and cover REST API updates).
@here: It's now meeting time. As usual, we'll kick things off with Angular UI updates in this channel.
I don't have any updates to report on my end, but will hand this over to @art-lowel to kick us off.
Matteo Perelli [11:01 AM]
Art Lowel [11:01 AM]
So a few updates this week:
first of all: the yarn PR has been merged
Originally the quick install docs relied on npm installing yarn as a global dependency (edited)
and the regular docs said to install yarn using their installer (because the yarn team discourages you from using npm to install it)
To be consistent, I removed yarn from the global npm dependencies, and added it as a requirement.
you can find installation instructions for your platform here:
Fast, reliable, and secure dependency management. (64KB)
Tim Donohue [11:03 AM]
Is this something worth revisiting later on? Wondering if we'll find the extra dependency to be problematic in the long term...or if it'll hopefully be worth it (as yarn is faster, etc)
Art Lowel [11:03 AM]
I don’t think it’s really a problem
the install is super simple
(a single command in unix systems)
and an installer for windows
Tim Donohue [11:04 AM]
Gotcha. Yes, I'm not implying we need to do anything now. Just noting we should keep this in mind in case we hit issues/complaints :wink:
So, for now, this all seems great
Matteo Perelli [11:04 AM]
I've tried it and seems good
Art Lowel [11:04 AM]
The rest services PR has been merged as well.
Here's what you need to know to use it:
- There is a DataService for each type of DSpaceObject.
(at the moment only ItemDataService and CollectionDataService, but making an additional one boils down to filling in the endpoint URLs.)
- These data services ensure resources get fetched from the rest api (the _mock_ rest api at this point), and stored in the ngrx store.
- The find methods in the DataServices return RemoteData objects
- RemoteData objects contain the status of the request (loading/failed/succeeded) and the data (or error message), as observables.
The following gist shows how you would use it in practice:
In the component I specify that `collectionData` has the type `RemoteData<Collection>`
In the OnInit: `this.collectionData = this.cds.findAll();`
Tim Donohue [11:07 AM]
:arrow_up: It'd be great to add these tips/hints into a Wiki or README somewhere, if they aren't there already
Art Lowel [11:07 AM]
Tim Donohue [11:07 AM]
Art Lowel [11:07 AM]
… and in the template, handle the different cases:
dedicated messages for `isLoading` and `hasFailed`
and the actual data for `hasSucceeded`
(of course in a more realistic scenario you might send the error to a notification service instead of handling it yourself)
The `async` pipe allows you to use observables in the template as if they were plain objects.
Because of the observables, the template will update automatically if the data in the store gets updated.
e.g. if a collection from this list is requested using a findById, and its short description has been changed on the server. Then the shortDescription field in this list will update as well.
Tim Donohue [11:09 AM]
Nice, this is sounding great. The example gist you linked to is also very helpful to "see" how this all looks
(And, as a sidenote, more of those would be useful going forward...either in gists or in links to actual code, once that gets going)
Art Lowel [11:10 AM]
Last time we agreed that if no progress had been made in the spinner PR that we'd accept it as is.
but I propose that for now we keep our options open:
we don't hide a page until everything is loaded
but we do have a LoadingService that needs to be notified if any component on a page is waiting for a result
because in general I think it's a good idea to have a canonical answer to the question: "has everything finished loading?"
and that way we can still choose to implement a spinner or a loading bar for the entire page later on.
Tim Donohue [11:12 AM]
notes it looks like @wwelling and @jcreel256 aren't around today (as I know they were tasked with looking at the Spinner PR: https://github.com/DSpace/dspace-angular/pull/43)
Hardy Pottinger [11:12 AM]
Spinner feels a bit like the final coat of paint, honestly
Tim Donohue [11:13 AM]
Sounds reasonable to me as well for now. Does this mean we just keep the spinner open for feedback? Are we closing it for more discussion?
Art Lowel [11:13 AM]
I think I better close the current issue, and write a new one with the proper explanation of the idea (edited)
Lotte won’t mind :wink:
(she wrote the current PR)
Tim Donohue [11:14 AM]
Yes, that's what this sounds like to me as well. A new discussion / proposal ticket sounds like the right direction (& closing current PR). We can always reuse/borrow Lotte's code later as needed
Art Lowel [11:14 AM]
Tim Donohue [11:15 AM]
Sounds like excellent progress since last week (in general)
Art Lowel [11:15 AM]
This was all I had though
Antoine Snyers [11:16 AM]
so is the issue still open to discuss the rest-services now that the PR is merged?
Art Lowel [11:16 AM]
I’ll definitely keep the current issue open until the tests and docs are all there
for big changes to the way things work, I think we better open separate issues
Tim Donohue [11:17 AM]
Looking at the "Ready" column in our Waffle, are there more UI tickets we can now create? (I just see the Collection homepage): https://waffle.io/DSpace/dspace-angular
Art Lowel [11:18 AM]
so I’ll be working on creating those as well in the next week
Tim Donohue [11:19 AM]
excellent! So, this is a great opportunity for all @here to start to create actual, visible UI screens! Anyone is obviously welcome to claim these tickets or play around a bit to see what you come up with (and ask for help as needed)
And, we've got a good example in https://github.com/DSpace/dspace-angular/issues/63 of what this work will look like
Do we have any other questions or comments here regarding next steps on the Angular UI work? Anyone interested in volunteering now to look at starting to create specific UI components?
Hardy Pottinger [11:22 AM]
tdonohue made me look, using the word "example" :slightly_smiling_face:
Tim Donohue [11:23 AM]
Since we have some extra time here, I'll take this opportunity to mention that the DSpace Steering Group has given us (DuraSpace) the go ahead to create a *new DSpace logo* (in prep for DSpace 7). We are currently running a competition on 99designs.com, and will be sharing & allowing all you to vote on the results (to select the new logo)
The logo competition ends next week, and we'll do some initial narrowing from the 50ish options we will get to some good candidates, and then open up the voting process to everyone. We'll see where that takes us, and the final decision will be made based on votes & with consultation with DSpace Steering (edited)
Art Lowel [11:25 AM]
can you link to the competition?
Tim Donohue [11:25 AM]
is looking for the link
Tim Donohue [11:27 AM]
Here it is. Keep in mind, there's a LOT here...and we will cut this list down before voting (so none of these are guaranteed to be in the vote quite yet): https://99designs.com/logo-design/contests/design-logo-popular-open-source-repository-software-world-705894/entries?utm_swu=8976
But, that said, we have some nice looking candidates so far
(and some others that are obvious no's...at least to me)
You are welcome to send me feedback on this list already if you see a few you really hope will be in the vote. But, the contest isn't final yet, so more will be coming in.
And if we decide that none of these are "great", we do have that option to redo the contest (pending Steering approval of course, as it costs $$)
But, we are nearing the end of our first 1/2 hour here...so, we probably shouldn't comment on logos here :slightly_smiling_face: Feel free to ping me later though via slack or email
Art Lowel [11:30 AM]
Thanks for the info though, it was news to me
Hardy Pottinger [11:30 AM]
Tim Donohue [11:31 AM]
It's all "new" since last week... we only kicked off this competition last week...though we had approval to do so earlier (and I didn't want to say much until we decided how to do select the logo)
Ok, with that, we are into the second 1/2 hour. Let's move this over to #rest-api
Mark Wood [12:04 PM]
I presume that someone will ensure that we don't wind up with a design that is too close to any owned by dSPACE. (You know: the other one.)
Tim Donohue [12:05 PM]
@mwood: Yes, we'll keep an eye out for that. Their logo is rather simple though: https://www.dspace.com