Skip to content

Instantly share code, notes, and snippets.

@rizary
Last active August 25, 2019 00:29
Show Gist options
  • Select an option

  • Save rizary/47dc30d8eb37d74c286352ef79ab0813 to your computer and use it in GitHub Desktop.

Select an option

Save rizary/47dc30d8eb37d74c286352ef79ab0813 to your computer and use it in GitHub Desktop.
This is my summary for GSoC 2019

Describe my work briefly

  • Adding tags and search box feature to existing UI v3 code
  • Remove the use of dyn function for routing case
  • Add dropdown and address bar routing
  • Expanding Type API and removing MonadWidget constraint
  • Adding content in home page
  • Adding Luite's diff link to matrix table

What is done

Adding tags feature to UI v3

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/Main.hs#L389-L411

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/58/files?utf8=%E2%9C%93&diff=unified&w=1

  • Package list will be sorted based on tag selection
  • Tag can be selected more than one

Adding search box to UI v3

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/Main.hs#L783-L797

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/64/files?utf8=%E2%9C%93&diff=unified&w=1

  • Package will appear as the user typing in the search box
  • Packages are sorted based on the word appear in the search box
  • User can go to the package's page by clicking the search result

Removing the use of dyn function

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/Main.hs#L160

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/66/files?utf8=%E2%9C%93&diff=unified&w=1

  • Change the Dynamic t FragRoute into FragRoute for routing case
  • Remove the need of pure function in the beginning of every route case

Add dropdown and address bar routing

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/Router.hs

File changed:

  1. Dropdown routing: https://github.com/haskell-CI/hackage-matrix-builder/pull/66/files?utf8=%E2%9C%93&diff=unified&w=1
  2. Address bar routing: https://github.com/haskell-CI/hackage-matrix-builder/pull/65/files?utf8=%E2%9C%93&diff=unified&w=1
  • Change the url address bar based on selected index state in the dropdown menu
  • Change the package's page based on the url

Expanding type API and remove MonadWidget constraint

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/API.hs#L285-L415

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/63/files?utf8=%E2%9C%93&diff=unified&w=1

  • Making the type API into one file API.hs for simplicity
  • Remove MonadWidget constraint which is no longer supported in Reflex-Dom
  • Adding api functions for conciseness
  • Remove v2 api style

Adding content in home page

Link: https://github.com/haskell-CI/hackage-matrix-builder/blob/master/src-ui.v3/src/Main.hs#L161-L207

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/59/files?utf8=%E2%9C%93&diff=unified&w=1

  • Adding details in home page similar to UI v2

Adding Luite's diff link to matrix table

Link: https://github.com/Rizary/hackage-matrix-builder/blob/v3-matrixtable/src-ui.v3/src/Main.hs#L539-L644

File changed: https://github.com/haskell-CI/hackage-matrix-builder/pull/67/files?utf8=%E2%9C%93&diff=unified&w=1

  • Remove the dyn function inside reportTableWidget function.
  • Adding luite's diff link in the row header
  • remove joinE function and use the existing switchHold function

TODO

  • Adding stylesheet for UI v3
  • Fixing bug on cell selection in matrix table

Commit Description

7c29915 is the latest GSoC 2019 commit

Writings

Part one: Haskell-y Ever After: Summer Tales for Every Full-stack Developer

Part two: Haskell-y Ever After: Summer Tales for Every Full-stack Developer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment