Render project data
[?]
Jan 27, 2021, 5:52 AM
PPW6ROC5U7FZCJCH2RX7UJ3PJYNPUMNEZ6KKO3375VFRUM4VT3VQCDependencies
- [2]
Z5KNL332Add skeleton of project overview HTML. - [3]
NJNMO72SAdd zcash.com submodule and update client to modern halogen. - [4]
J6S23MDGUse server timestamps for interval start and end. - [5]
B4MTB6UOPersist project across pages. - [6]
QAC2QJ32Add project overview page to client. - [7]
IR75ZMX3Return actual events for interval ends, not just timestamps. - [8]
JXG3FCXYUpgrade ps + halogen versions. - [9]
RSF6UAJKBreak out api module for timeline. - [10]
QH4UB73NFormat with purty. - [11]
NAFJ6RB3Minor module reorg. - [12]
ZIG57EE6Fix project selection, end log end on project switch. - [13]
QMEYU4MWAdd display for prior intervals. - [14]
OUR4PAOTUse local dates for display of intervals. - [*]
WRPIYG3EUse project listing functionality to check for whether we have a cookie. - [*]
QU5FW67RAdd project selection to time tracker.
Change contents
- edit in client/package-lock.json at line 1574
"big-integer": {"version": "1.6.48","resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz","integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="}, - edit in client/package.json at line 17
"big-integer": "^1.6.48", - edit in client/spago.dhall at line 16
, "formatters", "fixed-precision" - edit in client/src/Aftok/Api/Project.purs at line 55
type ProjectUserData = ProjectUserData' DateTime - replacement in client/src/Aftok/Overview.purs at line 11
-- import Data.Date (Date, year, month, day)-- import Data.DateTime as DT-- import Data.DateTime (DateTime(..), date)import Data.Enum (toEnum)import Data.Date (canonicalDate)-- import Data.Date.Component (Year(..), Month(..), Day(..))import Data.List as Limport Data.DateTime (DateTime(..), date) - edit in client/src/Aftok/Overview.purs at line 17
import Data.Time.Duration (Hours(..), Days(..)) - edit in client/src/Aftok/Overview.purs at line 20
import Data.Fixed as F - edit in client/src/Aftok/Overview.purs at line 22
-- import Data.Formatters.DateTimeimport Data.Rational as R - replacement in client/src/Aftok/Overview.purs at line 25
import Data.Maybe (Maybe(..), isNothing)import Data.Unfoldable (fromMaybe)import Data.Maybe (Maybe(..), maybe, isNothing, fromMaybe)import Data.Unfoldable as U - replacement in client/src/Aftok/Overview.purs at line 63
import Aftok.Types (System, ProjectId)import Aftok.Types (System, ProjectId, dateStr) - edit in client/src/Aftok/Overview.purs at line 68
, ProjectUserData - replacement in client/src/Aftok/Overview.purs at line 123
, projectDetail: Nothing, projectDetail: case input ofNothing -> NothingJust p -> Just $ ProjectDetail'{ project: p, depreciation: LinearDepreciation { undep: Days 30.0, dep: Days 300.0 }, contributors: M.singleton (unwrap p).initiator $ ProjectUserData'{ userName: "Joe", joinedOn: DateTime (fromMaybe bottom $ canonicalDate <$> (toEnum 2021) <*> (toEnum 1) <*> (toEnum 26)) bottom, totalContribution: Hours 100.0, currentPayoutRatio: 55 R.% 100}} - replacement in client/src/Aftok/Overview.purs at line 154
(fromMaybe $ projectDetail <$> st.projectDetail)(U.fromMaybe $ projectDetail <$> st.projectDetail) - replacement in client/src/Aftok/Overview.purs at line 168
[ colmd2 Nothing, colmd2 (Just "Project Name")[ colmd2 (Just "Project Name") - replacement in client/src/Aftok/Overview.purs at line 175
[ P.classes (ClassName <$> ["row", "pt-3", "font-weight-bold" ]) ]([ colmd2 Nothing, colmd2 (Just project.projectName)] <>[ P.classes (ClassName <$> ["row", "pt-3"]) ]([ colmd2 (Just project.projectName) ] <> - replacement in client/src/Aftok/Overview.purs at line 179
, colmd2 (Just $ show project.inceptionDate), colmd2 (Just $ dateStr (date project.inceptionDate)) - edit in client/src/Aftok/Overview.purs at line 182
, HH.section[ P.id_ "contributors" ]([ HH.div-- header[ P.classes (ClassName <$> ["row", "pt-3", "font-weight-bold" ]) ][ colmd2 (Just "Contributor"), colmd2 (Just "Joined"), colmd2 (Just "Contributed Hours"), colmd2 (Just "Current Revenue Share")]] <>(contributorCols <$> (L.toUnfoldable $ M.values detail.contributors))) - replacement in client/src/Aftok/Overview.purs at line 200
[ colmd2 (Just $ show obj.undep <> " days"), colmd2 (Just $ show obj.dep <> " days")[ colmd2 (Just $ show (unwrap obj.undep) <> " days"), colmd2 (Just $ show (unwrap obj.dep) <> " days")]contributorCols :: ProjectUserData -> H.ComponentHTML OverviewAction Slots mcontributorCols (ProjectUserData' pud) =let pct = maybe "N/A" (\f -> F.toString (f * F.fromInt 100)) (F.fromNumber (R.toNumber pud.currentPayoutRatio) :: Maybe (F.Fixed F.P10000))in HH.div[ P.classes (ClassName <$> ["row", "pt-3", "pb-2" ]) ][ colmd2 (Just pud.userName), colmd2 (Just $ dateStr (date pud.joinedOn)), colmd2 (Just $ show (unwrap pud.totalContribution)), colmd2 (Just $ pct <> "%") - replacement in client/src/Aftok/Overview.purs at line 216
colmd2 xs = HH.div [ P.classes (ClassName <$> ["col-md-2"]) ] (fromMaybe $ HH.text <$> xs)colmd2 xs = HH.div [ P.classes (ClassName <$> ["col-md-2"]) ] (U.fromMaybe $ HH.text <$> xs) - edit in client/src/Aftok/Overview.purs at line 218
-- <section id="associates">-- <div class="row pt-3 font-weight-bold">-- <div class="col-md-2">-- </div>-- <div class="col-md-2">-- Associate-- </div>-- <div class="col-md-2">-- Joined-- </div>-- <div class="col-md-2">-- Hrs / %-- </div>-- <div class="col-md-2">-- </div>-- </div>---- <div class="row pt-3 pb-2 stripe">-- <div class="col-md-2">-- </div>-- <div class="col-md-2">-- Freuline Fred-- </div>-- <div class="col-md-2">-- Oct 2020-- </div>-- <div class="col-md-2">-- 24hrs / 2.4%-- </div>-- <div class="col-md-2">-- </div>-- </div>-- <div class="row pt-3 pb-2 stripe">-- <div class="col-md-2">-- </div>-- <div class="col-md-2">-- Goobie Works A Lot-- </div>-- <div class="col-md-2">-- Jan 2020-- </div>-- <div class="col-md-2">-- 500 / 50%-- </div>-- <div class="col-md-2">-- </div>-- </div>-- <div class="row pt-3 pb-2 stripe">-- <div class="col-md-2">-- </div>-- <div class="col-md-2">-- Average Fella-- </div>-- <div class="col-md-2">-- May 2020-- </div>-- <div class="col-md-2">-- 250 hrs / 25%-- </div>-- <div class="col-md-2">-- </div>-- </div>-- <div class="row pt-3 pb-2 stripe">-- <div class="col-md-2">-- </div>-- <div class="col-md-2">-- Cool Kid-- </div>-- <div class="col-md-2">-- April 2020-- </div>-- <div class="col-md-2">-- 226 hrs 22.6%-- </div>-- <div class="col-md-2">-- </div>-- </div> - replacement in client/src/Aftok/Timeline.purs at line 10
import Data.Date (Date, year, month, day)import Data.Date (Date) - edit in client/src/Aftok/Timeline.purs at line 15
import Data.Enum (fromEnum) - edit in client/src/Aftok/Timeline.purs at line 61
, dateStr - edit in client/src/Aftok/Timeline.purs at line 305[3.7271]→[3.7271:7297](∅→∅),[3.7297]→[3.33276:33409](∅→∅),[3.7436]→[3.3328:3329](∅→∅),[3.33409]→[3.3328:3329](∅→∅),[3.3328]→[3.3328:3329](∅→∅)
dateStr :: Date -> StringdateStr d =(show <<< fromEnum $ year d) <> "-"<> (show <<< fromEnum $ month d)<> "-"<> (show <<< fromEnum $ day d) - replacement in client/src/Aftok/Types.purs at line 4
import Data.Date (Date)import Data.Date (Date, year, month, day) - edit in client/src/Aftok/Types.purs at line 7
import Data.Enum (fromEnum) - edit in client/src/Aftok/Types.purs at line 99
dateStr :: Date -> StringdateStr d =(show <<< fromEnum $ year d) <> "-"<> (show <<< fromEnum $ month d)<> "-"<> (show <<< fromEnum $ day d)