Giter VIP home page Giter VIP logo

taskcluster-web's Introduction

taskcluster-web's People

Contributors

abhiraj-tulsyan avatar aimenbatool avatar alecclarke avatar alhuck avatar ariellegordon avatar ark20 avatar arshadkazmi42 avatar ccooper avatar codegagan avatar djmitche avatar ededals avatar eliperelman avatar helfi92 avatar hemakshis avatar mash-a avatar mike44441 avatar mryashbhardwaj avatar nvamsikrishna05 avatar ojaswinm avatar oksmelnik avatar owlishdeveloper avatar projectyang avatar sammysamx20 avatar sonakshisaxena1 avatar sumitjoshi97 avatar vaishnavipamulapati avatar varundey avatar vivekraj10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taskcluster-web's Issues

Documentation

In the currently documentation structure, docs are in a separate repo on a separate domain, and its settings are managed independently from taskcluster-web. Let's bring those into this repository, still rendered with Markdown, at the /docs endpoint.

AWS provisioner worker type

This view is synonymous with https://tools.taskcluster.net/aws-provisioner/ami-test/. It would be nice if we could display all metadata necessary for rendering this into different cards in a single query. We may be able to put the definition into an expandable list item similar to what we do for tasks, but I'm not sure. Editing the definition should not be handled in this view.

AWS provisioner list

This page is synonymous with https://tools.taskcluster.net/aws-provisioner. I'm still not a fan of giving the AWS provisioner a special page over other provisioners, but it is what it is. This view is only concerned with the data and actions of the provisioner itself, and is not concerned with individual worker types, their actions, creating worker types, recent errors or health. Those may be linked, but they will not render in this view.

Page analytics

Every view navigation should register an analytics event.

Toggleable light theme

In addition to the dark theme, we can put a preference in the user's profile (which maybe we could rename to settings, not sure), to toggle between a light and dark theme.

App bar view help

Each page could contain important information for the new user of a particular view, but often doesn't warrant needing to be shown every time. Let's put a help icon in the app bar to show help, perhaps in a dialog or right drawer, showing help for a page.

Scopes list

This view is synonymous with the list at https://tools.taskcluster.net/auth/scopes. I'm not sure if the API supports pagination of this endpoint, but worst-case we can paginate it client side. The list displayed here may also be expandable panels instead of a table so we can drill into the clients.

Authenticated landing page

This is the view that is rendered when visiting / when logged in. We could show a list of recent tasks, some guidance to view their profile, or anything else really.

Initial application theme

We have decided that the initial theme is going to be a dark theme. We will address a toggleable light theme in #50.

Sentry integration

I hate to bake in specific providers, but for Mozilla Taskcluster production we want to capture errors using Sentry.

Recent tasks

When visiting the /tasks view without a task ID, let's display a list of recent tasks the user has viewed.

Global search

The individual search boxes in each view are only meant to search for the parameters necessary to render that view, and are duplicated in every view. Let's create a global search component that goes into the app bar, and can search across many types: tasks, task groups, docs, and more. This can be pattern-based, so a string matching a task ID could show an autocomplete to link to either a task or a task group, etc.

Pluggable views

This feature gives third parties the ability to extend the UI with their own views. This would probably be configured at some kind of cluster level, which would install a dependencies and provide metadata about the customization. Initial thoughts we are experimenting with in the MVP:

  • Each customization will either be a React component, or a function that returns a React component.
  • The customization needs to be pluggable as an npm package, by providing a valid package.json to make it importable at the default export.
  • Each customization should provide additional metadata via its package.json at a yet-unknown but well-known property. At a minimum, this would include the route pattern at which to render the customization, as well as a name to show in the navigation sidebar, title bar, app bar, etc.

What is unknown yet is how this can be integrated into a view, and that will drive whether a customization is a function or a component. The main concern lies around the Dashboard component, which handles a lot of view rendering logic for every authenticated view. Should a customization import the Dashboard and render it itself, like all the other views do? At first glance, I would think not. If not, then how do we handle some of the props needed by the Dashboard component? This needs to be solved.

Fetch data using GraphQL from web server instead of taskcluster-client-web

In order to realize the goal of much more efficient views, standard pagination, filtering, subscriptions, etc., we want to use GraphQL with Apollo over taskcluster-client-web. This will significantly reduce the data burden on the UI.

This task does not entail any server-side work, rather just the Apollo and GraphQL bits for the client to make authenticated and unauthenticated queries, mutations, and subscriptions.

Action analytics

Every interaction, like button clicks, should register an analytics event. We will probably have to encapsulate this our own button components.

Task Index

This view is synonymous with https://tools.taskcluster.net/index. I hate the UX on this page, so we need some thought here on how to make it better. Maybe a stepper wizard or something. ๐Ÿคทโ€โ™‚๏ธ

Unauthenticated landing page

This is the view that is rendered when visiting / when not logged in. The point of this page will be mostly informational in nature, encouraging the visitor to log in.

Task groups

This page is synonymous with https://tools.taskcluster.net/groups/e4MvyI2FSjqEmLjZ1mUbYw. In order to address UX concerns, this view will no longer be unified with viewing tasks; it is only concerned about the group itself and its actions.

The task group will be paginated, most likely in pages of 100 tasks. We will also do a server-side filter if specified, and we are aware that this will initially lead to inconsistent page sizes.

This should fix:

This issue should also involve the GraphQL task subscription.

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.