Skip to content

Commit

Permalink
Refactor origin list and move them to their own file
Browse files Browse the repository at this point in the history
  • Loading branch information
Marigold committed Dec 11, 2023
1 parent d032552 commit 2e817b6
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 112 deletions.
18 changes: 17 additions & 1 deletion adminSiteClient/DatasetEditPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ import * as lodash from "lodash"
import { Prompt, Redirect } from "react-router-dom"
import filenamify from "filenamify"

import { OwidSource, ChartTagJoin } from "@ourworldindata/utils"
import { OwidSource, ChartTagJoin, OwidOrigin } from "@ourworldindata/utils"

import { AdminLayout } from "./AdminLayout.js"
import { Link } from "./Link.js"
import { BindString, Toggle, FieldsRow, Timeago } from "./Forms.js"
import { EditableTags } from "./EditableTags.js"
import { ChartList, ChartListItem } from "./ChartList.js"
import { OriginList } from "./OriginList.js"
import { VariableList, VariableListItem } from "./VariableList.js"
import { AdminAppContext, AdminAppContextType } from "./AdminAppContext.js"
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome/index.js"
Expand All @@ -27,6 +28,7 @@ interface DatasetPageData {
version: string
isPrivate: boolean
nonRedistributable: boolean
updatePeriodDays: number

dataEditedAt: Date
dataEditedByUserId: number
Expand All @@ -42,13 +44,16 @@ interface DatasetPageData {
charts: ChartListItem[]
source?: OwidSource
zipFile?: { filename: string }

origins: OwidOrigin[]
}

class DatasetEditable {
@observable name: string = ""
@observable description: string = ""
@observable isPrivate: boolean = false
@observable nonRedistributable: boolean = false
@observable updatePeriodDays: number | undefined = undefined

@observable source: OwidSource = {
id: -1,
Expand Down Expand Up @@ -305,6 +310,13 @@ class DatasetEditor extends React.Component<{ dataset: DatasetPageData }> {
disabled={isDisabled}
helpText="Date when this data was obtained by us. Date format should always be YYYY-MM-DD."
/>
<BindString
label="Number of days between OWID updates"
field="updatePeriodDays"
store={newDataset}
disabled={isDisabled}
helpText="Date when this data was obtained by us. Date format should always be YYYY-MM-DD."
/>
<DatasetTagEditor
newDataset={newDataset}
availableTags={dataset.availableTags}
Expand Down Expand Up @@ -376,6 +388,10 @@ class DatasetEditor extends React.Component<{ dataset: DatasetPageData }> {
/>
</form>
</section>
<section>
<h3>Origins</h3>
<OriginList origins={dataset.origins || []} />
</section>
<section>
<h3>Indicators</h3>
<VariableList variables={dataset.variables} />
Expand Down
111 changes: 111 additions & 0 deletions adminSiteClient/OriginList.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import React from "react"
import { observer } from "mobx-react"
import { AdminAppContext, AdminAppContextType } from "./AdminAppContext.js"
import { OwidOrigin } from "@ourworldindata/utils"
import { BindString, FieldsRow } from "./Forms.js"

@observer
export class OriginList extends React.Component<{
origins: OwidOrigin[]
}> {
static contextType = AdminAppContext
context!: AdminAppContextType

render() {
const { origins } = this.props
const isDisabled = true

return (
<div>
{origins.map((origin, index) => (
<div key={index}>
<h4>{origin.title}</h4>
<FieldsRow>
<BindString
label="Title"
field="title"
store={origin}
disabled={isDisabled}
/>
<BindString
label="Title Snapshot"
field="titleSnapshot"
store={origin}
disabled={isDisabled}
/>
<BindString
label="Attribution"
field="attribution"
store={origin}
disabled={isDisabled}
/>
<BindString
label="Attribution Short"
field="attributionShort"
store={origin}
disabled={isDisabled}
/>
</FieldsRow>
<FieldsRow>
<BindString
label="Description"
field="description"
store={origin}
disabled={isDisabled}
textarea
/>
<BindString
label="Description Snapshot"
field="descriptionSnapshot"
store={origin}
disabled={isDisabled}
textarea
/>
<BindString
label="Citation Full"
field="citationFull"
store={origin}
disabled={isDisabled}
textarea
/>
<BindString
label="Producer"
field="producer"
store={origin}
disabled={isDisabled}
/>
</FieldsRow>
<FieldsRow>
<BindString
label="URL Main"
field="urlMain"
store={origin}
disabled={isDisabled}
/>
<BindString
label="URL Download"
field="urlDownload"
store={origin}
disabled={isDisabled}
/>
<BindString
label="Date Accessed"
field="dateAccessed"
store={origin}
disabled={isDisabled}
/>
<BindString
label="Date Published"
field="datePublished"
store={origin}
disabled={isDisabled}
/>
{/* Missing origin license... is it worth adding it? */}
</FieldsRow>
<hr />
</div>
))}
</div>
)
}
}
Loading

0 comments on commit 2e817b6

Please sign in to comment.