added 260907 version of worker toolkit

This commit is contained in:
2026-09-08 20:30:51 -04:00
parent cbd3f0f8ca
commit 97aca37663
1283 changed files with 142951 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
{{save-status record=checkin}}
<h2>{{step.title}}</h2>
{{#if step.hint}}
<div class="tip">{{{step.hint}}}</div>
{{/if}}

View File

@@ -0,0 +1,15 @@
{{#if trackableTypeIsTreatment}}
{{checkin/treatment-taker model=tracked
disabled=isSaving
onTitleClicked=(action 'onTrackableClicked')
onIsTakenChanged=(action 'saveChanges')
onDoseChanged=(action 'saveChanges')
onRemove=(action 'remove') }}
{{else}}
{{checkin/tracked-level model=tracked
valueKey='value'
disabled=isSaving
onTitleClicked=(action 'onTrackableClicked')
onValueChanged=(action 'saveChanges')
onRemove=(action 'remove') }}
{{/if}}

View File

@@ -0,0 +1,21 @@
<div class="checkin-days-nav">
<div class="yesterday">
<a href="#" {{action 'goToYesterday'}}>‹</a>
</div>
<a class="calendar-opener" {{action 'openPicker' bubbles=false}}>
{{inline-svg 'calendar-icon' class='calendar-icon'}}
&nbsp;
{{checkinDateLabel}}
{{pick-a-date
date=(readonly checkinDate)
options=(readonly pickadateOptions)
on-selected=(action 'checkinDateChanged')
}}
</a>
<div class="tomorrow">
<a href="#" {{action 'goToTomorrow'}}>›</a>
</div>
</div>

View File

@@ -0,0 +1,131 @@
<div class="flaredown-white-box">
{{partial "components/checkin/step-header"}}
{{#if (or hbi.hasDirtyAttributes hbi.isNew)}}
{{#form-for for=hbi onSubmit="save"}}
{{#form-field for="wellBeing" label="General well-being yesterday"}}
{{#power-select
class="fs-private"
options=hbi.wellBeingOptions
onchange=(action "selectOption" "wellBeing")
selected=hbi.selectedWellBeing
placeholder="Select"
renderInPlace=true
as |wellBeing| }}
{{wellBeing.label}}
{{/power-select}}
{{/form-field}}
{{#form-field for="abdominalPain" label="Abdominal pain yesterday"}}
{{#power-select
class="fs-private"
options=hbi.abdominalPainOptions
onchange=(action "selectOption" "abdominalPain")
selected=hbi.selectedAbdominalPain
placeholder="Select"
renderInPlace=true
as |abdominalPain| }}
{{abdominalPain.label}}
{{/power-select}}
{{/form-field}}
{{#form-field for="stoolsString" label="Number of liquid or soft stools yesterday"}}
{{input value=hbi.stoolsString placeholder="Enter number" class="fs-private" type="number"}}
{{/form-field}}
{{#form-field for="abdominalMass" label="Do you have an abdominal mass?"}}
{{#power-select
class="fs-private"
options=hbi.abdominalMassOptions
onchange=(action "selectOption" "abdominalMass")
selected=hbi.selectedAbdominalMass
placeholder="Select"
renderInPlace=true
as |abdominalMass| }}
{{abdominalMass.label}}
{{/power-select}}
{{/form-field}}
<label>Do you have any of these complications?</label>
<div>
{{label-switch
checked=(mut hbi.arthralgia)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Arthralgia</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.uveitis)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Uveitis</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.erythemaNodosum)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Erythema nodosum</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.aphthousUlcers)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Aphthous ulcers</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.pyodermaGangrenosum)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Pyoderma gangrenosum</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.analFissure)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Anal fissure</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.newFistula)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">New fistula</h5>
</div>
<div>
{{label-switch
checked=(mut hbi.abscess)
bgColorClass="colorable-bg-35"
}}
<h5 class="switch-name">Abscess</h5>
</div>
{{input type="submit" class="submit" value="Calculate score" disabled=hbi.notReady}}
{{/form-for}}
{{else}}
<div class="score">
<p>Your result:</p>
<h3>{{hbi.score}}</h3>
<p>{{hbi-label hbi.score}}</p>
</div>
{{/if}}
{{step-controls
step=step
onForward=(action "completeStep")
onBackward=(action "goBack")
forwardLabel="Next"
}}
</div>

View File

@@ -0,0 +1,29 @@
<div class="flaredown-white-box">
{{partial "components/checkin/step-header"}}
<h3>Food</h3>
{{checkin/multi-select-group
idsKey='foodIds'
modelName='food'
relationName='foods'
onBeforeAdd=(action 'onBeforeAddFood')
}}
<h3 class="vert-offset-top-2">Tags</h3>
{{checkin/multi-select-group
idsKey='tagIds'
modelName='tag'
badgeStyle=true
relationName='tags'
onBeforeAdd=(action 'onBeforeAddTag')
}}
{{step-controls
step=step
forwardLabel='Next'
onBackward=(action "goBack")
onForward=(action "completeStep")
}}
</div>

View File

@@ -0,0 +1,25 @@
<ul>
{{#each objects as |object|}}
<li class="choosen-object" {{action "clicked" object}}>
{{#if badgeStyle}}
<img class="badge-pointer" src="/assets/tag-point.svg">
<div class="badge-text">{{object.name}}</div>
{{else}}
<div class="regular">{{object.name}}</div>
{{/if}}
</li>
{{/each}}
</ul>
{{#power-select-with-create
search=(action "searchObjects")
onchange=(action "handleChange")
oncreate=(action "createObject")
showCreateWhen=(action "shouldShowCreateOption")
placeholder=selectPlaceholder
onfocus=(action "handleFocus")
onblur=(action "handleBlur")
renderInPlace=true
as |object| }}
{{object.name}}
{{/power-select-with-create}}

View File

@@ -0,0 +1,22 @@
{{checkin/multi-select-edit
objects=relatedObjects
modelName=modelName
badgeStyle=badgeStyle
onClicked=(action "remove")
onSelected=(action "add")
onBeforeAdd=(action "onBeforeAdd")
}}
{{multi-group
scope="most_popular"
title="Popular"
modelName=modelName
onItemClicked=(action "add")
}}
<br>
{{multi-group
scope="most_recent"
title="Recent"
modelName=modelName
onItemClicked=(action "add")
}}

View File

@@ -0,0 +1,4 @@
<h2>Journal</h2>
{{textarea value=(mut checkin.note)
placeholder="Leave a note about your day"
class="note-textarea fs-private" }}

View File

@@ -0,0 +1,43 @@
<div class="flaredown-white-box">
{{save-status record=checkin}}
<h2>{{step.title}}</h2>
{{#if showRatePage}}
<h4>{{prBody}}</h4>
<ul class="prRate">
{{#each prRates as |prRate|}}
<li class="{{if (eq selectedRate prRate) 'active'}}" {{action (mut selectedRate) prRate}}>
{{prRate}}
</li>
{{/each}}
</ul>
<br>
<div class="container">
<button class="btn-primary pr-btn" {{action "sendFeedback"}} disabled={{not selectedRate}}>
{{feedBackLabel}}
</button>
</div>
{{step-controls
step=step
onForward=(action "skipStep")
linkForward=true
onBackward=(action "goBack")
forwardLabel="Skip"
}}
{{else}}
{{promotion-score
pr=pr
onForward=onStepCompleted
onBackward=onGoBack
forwardLabel='Next'
stepHasPrev=step.prevId
title=step.title
feedBackLabel=feedBackLabel
}}
{{/if}}
</div>

View File

@@ -0,0 +1,9 @@
<h3 class="centered">Your daily digest</h3>
{{#if model.isPending}}
{{partial "application/three-bounce-spinner"}}
{{else}}
{{#each model as |post|}}
{{posts/topic-post post=post isAuthenticatedUser= session.isAuthenticated}}
{{/each}}
{{/if}}

View File

@@ -0,0 +1,14 @@
<br>
{{checkin/note-edit checkin=checkin}}
<div class="flaredown-white-box">
{{checkin/weather-step}}
</div>
{{checkin/summary-posts}}
{{step-controls step=step
showBack=false
forwardLabel=(inline-svg 'history_white')
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,42 @@
<div class="flaredown-white-box">
{{partial "components/checkin/step-header"}}
{{#each sortedTrackeds as |tracked|}}
{{#unless tracked.isPreparedForDestroy}}
<div class="trackable-row {{trackableType}}-row">
{{draggable-dropzone itemId=tracked.id
onDropped=(action 'move') }}
{{#if session.isMobileDevice}}
{{#if (eq clickedTrackableId tracked.id)}}
{{#draggable-item itemId=tracked.id class="activated"}}
{{partial "components/checkin/trackable-item"}}
{{/draggable-item}}
{{else}}
{{partial "components/checkin/trackable-item"}}
{{/if}}
{{else}}
{{#draggable-item itemId=tracked.id}}
{{partial "components/checkin/trackable-item"}}
{{/draggable-item}}
{{/if}}
</div>
{{/unless}}
{{/each}}
<div class="trackable-row {{trackableType}}-row">
{{draggable-dropzone itemId="after-last"
onDropped=(action 'move') }}
</div>
{{trackables-select trackableType=trackableType
selected=selectedTrackable
disabled=isSaving
onSelect=(action "add") }}
{{step-controls
step=step
disabled=isSaving
onForward=(action "completeStep")
onBackward=(action "goBack")
forwardLabel="Next"
}}
</div>

View File

@@ -0,0 +1,16 @@
<h4 {{action "titleClicked"}}>
{{label}}
{{#unless disabled}}
<span class="x-to-remove" {{action 'xClick'}}>×</span>
{{/unless}}
</h4>
<div>
<ul class="pips">
{{#each pips as |pip|}}
{{pip-tag value=pip.value selected=selectedValue current=currentValue modelBgClass=model.bgClass
onClick=(action "setSelectedValue")
onMouseEnter=(action "setCurrentValue")
onMouseLeave=(action "unsetCurrentValue")}}
{{/each}}
</ul>
</div>

View File

@@ -0,0 +1,41 @@
{{label-switch checked=(mut isTaken)
bgColorClass=model.bgClass}}
<div class="treatment-data">
<h4 class="name {{unless isTaken 'untaken'}}" {{action "titleClicked"}}>
&nbsp;{{treatment.name}}
<span class="x-to-remove" {{action 'removeTreatment'}}>×</span>
</h4>
{{#if isTaken}}
<div class="treatment-dose">
{{#if isEditMode}}
{{#power-select-with-create options=allTreatmentDoses
search=(action "searchObjects")
onchange=(action "handleChange")
oncreate=(action "createDose")
showCreateWhen=(action "shouldShowCreateOption")
selected=dose
placeholder="e.g. 2 x 30mg"
initiallyOpened=true
onfocus=(action "handleFocus")
onblur=(action "handleBlur")
renderInPlace=true
disabled=disabled
triggerClass=(concat "dose-trigger " model.borderClass)
dropdownClass=(concat "dose-dropdown " model.borderClass)
as |dose| }}
{{dose.name}}
{{/power-select-with-create}}
{{else}}
<a href="#" class="indented dose {{model.borderClass}} {{model.clrClass}}" {{action 'edit'}}>
{{if dose dose.name "No dose"}}
</a>
{{/if}}
{{#if dose}}
&nbsp;<span class="x-to-remove" {{action 'clearDose'}}>×</span>
{{/if}}
</div>
{{/if}}
</div>

View File

@@ -0,0 +1,59 @@
<h2>Weather</h2>
{{#if inputVisible}}
<div class="grey">
{{#if hasWeather}}
Set location:
{{else if validPostalCode }}
To enable weather tracking,
<br>
enter your location below
{{else}}
We couldn't find that location
<br>
Try entering a postal code or an address.
{{/if}}
</div>
{{input placeholder="Address or postal code" value=newPostalCode}}
<a class="save-status" {{action "updatePostalCode"}}>Submit</a>
<br>
{{else}}
<div class="grey clickable" {{action "showInput"}}>{{checkin.locationName}}</div>
{{/if}}
{{#if hasWeather}}
<img class="vert-offset-top-1" src="/assets/weather/{{iconType}}.png">
<h5 class="vert-offset-top-1">{{weather.summary}}</h5>
<div class="measurements vert-offset-top-1">
<div class="measurement clickable" {{action "toggleTemperatureUnits"}} >
<h3>{{shownTemperatureMin}}&deg;{{temperatureUnits}}</h3>
<label>Low</label>
</div>
<div class="measurement clickable" {{action "toggleTemperatureUnits"}}>
<h3>{{shownTemperatureMax}}&deg;{{temperatureUnits}}</h3>
<label>High</label>
</div>
<div class="measurement">
<h3>.{{formattedPrecipitation}}</h3>
<label>Precip.</label>
</div>
</div>
<div class="measurements vert-offset-top-1">
<div class="measurement clickable" {{action "togglePressureUnits"}}>
<h3>{{shownPressure}}{{pressureUnits}}</h3>
<label>Pressure</label>
</div>
<div class="measurement">
<h3>{{weather.humidity}}%</h3>
<label>Humidity</label>
</div>
</div>
{{/if}}