Git Product home page Git Product logo

elevator-ui's People

Contributors

cmcfadden avatar jxjj avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

elevator-ui's Issues

Navigation Bar rendering

Endpoint which should vend the information necessary to render the navbar:
https://dev.elevator.umn.edu/defaultinstance/home/getInstanceNav

That'll return JSON in the structure below - annotations added.

The "recent collections" and "recent drawers" are a little clunky, and I'm not sure we need to keep them. They currently only update when a user explicitly goes through the "All collections" or "All drawers" interface, so if they effectively browse collections via a search or something, it won't be reflected.

{
    "pages": [ -- pages for building the navbar. Children pages will follow the same format, and are fed into the pulldowns in the current site. Order of the items in the array corresponds to order drawn in the nav
        {
            "title": "Another Page",
            "id": 17,
            "children": []
        },
        {
            "title": "test",
            "id": 14,
            "children": []
        }
    ],
    "userIsloggedIn": true, --  info below describes the user if logged in. These keys will always be populated, they just might be set to false
    "userCanCreateDrawers": true,
    "userCanManageAssets": true,
    "userId": 1,
    "userDisplayName": "Admin",
    "userIsAdmin": true,
    "userIsSuperAdmin": true,
    "instanceName": "defaultinstance", not sure if we need this or if we'll have it via the config object
    "instanceId": 1, -- not sure if we need this or if we'll have it via the config object
	"instanceHasLogo": false,
    "recentDrawers": [ -- array of drawers most recently accessed by the user
        {
            "id": 440,
            "title": "James drawer"
        }
		-- snip --
    ],
    "recentCollections": [ -- array of collections most recently accessed by the user via the collection browse list
        {
            "id": 41,
            "title": "Speeches 2 - Don't use"
        }
        -- snip --
    ],
    "contact": "mailto:[email protected]", -- This can be either a mailto: or a URL (http://). Feeds the "contact us" link under help.
    "useCentralAuth": true, -- determines whether or not we show the "University Login" link in addition to the local user login
	"centralAuthLabel": "University", -- determines the label of the central auth link. Could be "St. Olaf Login" or "College Login" or whatever"
	"collections": [  -- nested hierarchy of all collections that the user has permissions to see
        {
            "id": 74,
            "title": "API Import",
            "children": [
                {
                    "id": 75,
                    "title": "Bennington Test Collection"
                }
            ]
        }
		-- snip --
	]

}

Update to Storybook 7 (support for Node LTS v18)

Running the project with node LTS (version 18), fails with this error:

➜  elevator-ui git:(develop) ✗ yarn storybook
yarn run v1.22.19
$ start-storybook -p 6006
info @storybook/vue3 v6.5.12
info 
info => Loading presets
ℹ 「wdm」: wait until bundle finished: 
node:internal/crypto/hash:71
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/Users/johnsojr/code/elevator-ui/node_modules/@storybook/vue3/node_modules/@storybook/manager-webpack4/node_modules/webpack/lib/util/createHash.js:135:53)
 ...

This is related to a change with openssl between node 16 and 18. Reportedly, this issue is resolved in Storybook 7.

A workaround (other than just using Node 16), is to use --openssl-legacy-provider option with node 18.

Like:

NODE_OPTIONS=--openssl-legacy-provider yarn storybook

Reduce gap between fields?

I feel like we can get away with less vertical padding between fields, so that more content is above the fold. Doing a gap-4 instead of gap-8 still feels like plenty of padding to me. Thoughts?

Gap 8:
Screenshot 2022-11-05 at 12 17 08 PM

Gap 4:
Screenshot 2022-11-05 at 12 16 10 PM

Surface errors better

Something better than console.error?
Maybe toast style notifications when there's an error. (This might be ready to go with the notificationStore, it just needs to be used?

Sometimes file info doesn't load

Example:

CleanShot 2023-04-05 at 18 45 31@2x

MoreFileInfoButton.vue:106 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'FileType')
    at MoreFileInfoButton.vue:106:1

Search Results

Priorities:

  • Grid
  • List
  • Map

Also:

  • Need to keep sort on that page.
  • infinite scroll

Secondary:

  • Timeline
  • Gallery

Nit: User initial box looks weird

It's sometimes a rectangle. Nobody likes rectangles. Should probably be either a rounded square or circle. Maybe only one initial? And is color needed? Now the the design system is settling, maybe simplify? Chat with @cmcfadden.

CleanShot 2023-04-05 at 18 48 48@2x

Can’t scroll menu on mobile

Not sure if this is new, or if I just hadn’t tried logging in on mobile - I can’t seem to scroll all the way down, without the browser popping back in?

IMG_8003.MOV

Let <App> component take configuration

Currently, the app loads config via a config file, which in turn grabs environment configuration like baseUrl from env files.

Add the ability for the to get this configuration as props so that it can be injected into the app at runtime rather than build time.

Support Collections pages

Collections are just a special type of search results. The json payload returned will have a empty string as the query, and a collections id set. The collections id will let us get information about the collection, like the title and description.

A collections page should show search results, but also include the collection name and description at the top.

And, of course, it shouldn't show and empty string as the search query.

Change build to output files the same name

Currently, vite build creates css and js files with hashed filenames.

The elevator app will has its own cache-busting mechanism, so this is unnecessary. Also, the build files will need to be committed to the elevator app, so we want the css and js file to have the same name so we don't need to do clean-up.

Add storeOnly flag to initial searchResults call

If you add storeOnly as true to the initial post to searchResults (IE, when they type in the box and hit return), we'll return the searchID without actually hydrating all the results. Right now, we're returning all the results when you fire off a search, but not utilizing them, then calling searchResults with the searchID in order to get the results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.