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,35 @@
<div class="reminderTitle">{{title}}</div>
{{#form-for for=profile}}
{{#radio-button
value=false
groupValue=profile.checkinReminder
changed="changeReminder"}}
{{reminderOff}}
{{/radio-button}}
{{#radio-button
value=true
groupValue=profile.checkinReminder
changed="changeReminder"}}
{{reminderOn}}
{{/radio-button}}
{{#form-field for="checkinReminderHours" classNameBindings="checkinReminderEnabled:checkinReminders:hideTag"}}
{{custom-pick-a-time on-selected=(action 'timeChanged') options=options placeholder=null class="checkinReminderTime"}}
{{#power-select options=timezones
placeholder="Select a timezone"
selected=model.timeZoneName
onchange=(action (mut model.timeZoneName))
renderInPlace=true
searchEnabled=true
as |timezone| }}
{{timezone}}
{{/power-select}}
{{/form-field}}
{{/form-for}}

View File

@@ -0,0 +1,15 @@
{{#each existingTrackings as |tracking| }}
{{partial "components/view-remove-tracking"}}
{{/each}}
{{#each newTrackings as |tracking| }}
{{partial "components/view-remove-tracking"}}
{{/each}}
{{trackables-select trackableType=trackableType
selected=selectedTrackable
onSelect=(action "trackSelected") }}
<div class="explainer">
Not required, and you can change these later
</div>

View File

@@ -0,0 +1,14 @@
<div class="item">
{{inline-svg 'circle' class='icon'}}
<span>Design your health profile</span>
</div>
<div class="item">
{{inline-svg 'circle' class='icon'}}
<span>Track symptoms and treatments</span>
</div>
<div class="item">
{{inline-svg 'circle' class='icon'}}
<span>Share you story</span>
</div>

View File

@@ -0,0 +1,27 @@
{{#power-select
options=yearsArray
onchange=(action (mut birthDate.year))
selected=birthDate.year
placeholder='Year'
as |year|}}
{{year}}
{{/power-select}}
{{#power-select
options=months
onchange=(action (mut birthDate.month))
selected=birthDate.month
placeholder='Month'
as |month|}}
{{month}}
{{/power-select}}
{{#power-select
options=daysArray
onchange=(action (mut birthDate.day))
selected=birthDate.day
disabled=disabledDays
placeholder='Day'
as |day|}}
{{day}}
{{/power-select}}

View File

@@ -0,0 +1,36 @@
{{#link-to 'settings' class='bottom-link'}}
{{inline-svg 'settings-icon' class='icon'}}
<label>SETTINGS</label>
{{/link-to}}
{{#if session.currentUser}}
{{#if notifications.unread}}
{{nav/discussions-unread}}
{{else}}
{{#link-to 'posts' class='bottom-link'}}
{{inline-svg 'discuss' class='icon'}}
<label>CHAT</label>
{{/link-to}}
{{/if}}
{{/if}}
{{!-- <div class="bottom-link">
{{inline-svg 'explore' class='icon'}}
<label>EXPLORE</label>
</div> --}}
{{#link-to 'chart' class='bottom-link'}}
{{inline-svg 'history_2' class='icon'}}
<label>HISTORY</label>
{{/link-to}}
<a href="/" {{action "goToTodaysCheckins"}} class="{{checkinNavClass}}">
{{inline-svg 'checkin_2' class='icon'}}
<label>CHECKIN</label>
</a>

View File

@@ -0,0 +1,62 @@
<div class="left-arrow">
<a {{action 'navigateLeft'}}>
{{inline-svg 'arrow-left' class='arrow-icon'}}
</a>
</div>
{{#if patternNavbar}}
<div class="calendar">
<a class="calendar-opener-start calendarItem" {{action 'openPicker' 'start' bubbles=false}}>
&nbsp;
{{startAtLabel}}
{{pick-a-date
date=(readonly startDate)
options=(readonly pickadateOptionsStart)
on-selected=(action 'startChanged')
}}
</a>
<span>to</span>
<a class="calendar-opener-end calendarItem" {{action 'openPicker' 'end' bubbles=false}}>
&nbsp;
{{endAtLabel}}
{{pick-a-date
date=(readonly endDate)
options=(readonly pickadateOptionsEnd)
on-selected=(action 'endChanged')
}}
</a>
</div>
<div class="rigth-arrow">
{{#if rigthArrowVisibile}}
<a {{action 'navigateRight'}}>
{{inline-svg 'arrow-right' class='arrow-icon'}}
</a>
{{/if}}
</div>
{{else}}
<a class="calendar-opener calendarItem" {{action 'openPicker' bubbles=false}}>
&nbsp;
{{startAtLabel}} - {{endAtLabel}}
{{pick-a-date
date=(readonly date)
options=(readonly pickadateOptions)
on-selected=(action (mut date))
}}
</a>
<span>
{{inline-svg 'eye' class='eye-icon'}}
&nbsp;
{{visibleChartsCount}} visible
</span>
<div class="rigth-arrow">
<a {{action 'navigateRight'}}>
{{inline-svg 'arrow-right' class='arrow-icon'}}
</a>
</div>
{{/if}}

View File

@@ -0,0 +1,32 @@
<div class='history-box'>
{{#if patterns.isPending}}
{{partial "application/three-bounce-spinner"}}
{{else if (eq currentStep STEPS.INITIAL)}}
<div class="flaredown-transparent-box">
<p class="centered">{{t "history.step.initial.text"}}</p>
{{pattern/svg-initial}}
<div class="history-container">
<button class="history-btn large-btn" {{action "nextStep"}}>
{{t "history.step.initial.buttonText"}}
</button>
</div>
</div>
{{else if (eq currentStep STEPS.CREATE)}}
{{pattern/create-step
model=selectedPattern
onSaved=(action (mut currentStep) STEPS.INDEX)
onCanceled=(action (mut currentStep) STEPS.INDEX)
}}
{{else if (eq currentStep STEPS.INDEX)}}
{{pattern/index-step
patterns=patterns
authorPage=true
onEdit=(action 'edit')
onCreate=(action 'create')
onRequest=(action 'requestData')
}}
{{/if}}
</div>

View File

@@ -0,0 +1,11 @@
<text class="title {{model.fillClass}}" transform="translate(5, -5)">{{model.name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
<line
x1="0"
x2="{{width}}"
class="ruler-line {{model.strokeClass}}"
transform="translate(0, {{halfHeight}})"
/>

View File

@@ -0,0 +1,6 @@
<text class="title {{model.fillClass}}" transform="translate(5, -5)">{{model.name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
{{chart/g-ruler yScale=yScale yRulers=yRulers width=width}}

View File

@@ -0,0 +1,32 @@
<text class="title {{model.fillClass}}" transform="translate(5, -5)">{{model.name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
<line
x1="0"
x2="{{width}}"
class="ruler-line {{model.strokeClass}}"
transform="translate(0, {{halfHeight}})"
/>
<g transform="{{nestedTransform}}">
<defs>
<g id="marker-{{xAxisElementId}}" >
<circle cx="0" cy="0" r="{{markerRadius}}"/>
</g>
</defs>
{{#if openMarkerTooltip}}
<text x="{{currentMarker.tip.x}}" y="{{currentMarker.tip.y}}" class="tool-tip {{model.fillClass}}">
{{currentMarker.tip.label}}
</text>
{{/if}}
{{#each markers as |marker|}}
<use xlink:href="#marker-{{xAxisElementId}}" x="{{marker.x}}" y="{{marker.y}}" class="marker {{model.fillClass}}"
{{action "openMarkerTooltip" marker on="mouseEnter"}}
{{action "closeMarkerTooltip" marker on="mouseLeave"}}
/>
{{/each}}
</g>

View File

@@ -0,0 +1,23 @@
<text class="title {{fillClass}}" transform="translate(5,-5)">{{name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
{{chart/g-ruler yScale=yScale yRulers=yRulers width=width}}
<path class="line {{strokeClass}}" d="{{lineFunction}}" transform="{{nestedTransform}}"></path>
<g transform="{{nestedTransform}}">
{{#if openPointTooltip}}
<text x="{{currentPoint.tip.x}}" y="{{currentPoint.tip.y}}" class="tool-tip {{fillClass}}" >
{{currentPoint.tip.label}}
</text>
{{/if}}
{{#each points as |point|}}
<circle cx="{{point.x}}" cy="{{point.y}}" r="4" class="point {{strokeClass}}" stroke-width="2" fill="white"
{{action "openPointTooltip" point on="mouseEnter"}}
{{action "closePointTooltip" point on="mouseLeave"}}
/>
{{/each}}
</g>

View File

@@ -0,0 +1,16 @@
<g class="ruler-labels">
{{#each rulers as |ruler|}}
<text class="ruler-label" transform="translate(10, {{ruler.labelY}})">{{ruler.label}}</text>
{{/each}}
</g>
<g transform="translate({{linesOffset}})">
{{#each rulers as |ruler|}}
<line
x1="5"
x2="{{width}}"
class="ruler-line"
transform="translate(0, {{ruler.lineY}})"
/>
{{/each}}
</g>

View File

@@ -0,0 +1 @@
<g id="{{xAxisElementId}}" class="axis timeline"></g>

View File

@@ -0,0 +1,23 @@
<text class="title {{model.fillClass}}" transform="translate(5, -5)">{{model.name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
{{chart/g-ruler yScale=yScale yRulers=yRulers width=width}}
<path class="line {{model.strokeClass}}" d="{{lineFunction}}" transform="{{nestedTransform}}"></path>
<g transform="{{nestedTransform}}">
{{#if openPointTooltip}}
<text x="{{currentPoint.tip.x}}" y="{{currentPoint.tip.y}}" class="tool-tip {{model.fillClass}}" >
{{pip-label currentPoint.tip.label}}
</text>
{{/if}}
{{#each points as |point|}}
<circle cx="{{point.x}}" cy="{{point.y}}" r="4" class="point {{model.strokeClass}}" stroke-width="2" fill="white"
{{action "openPointTooltip" point on="mouseEnter"}}
{{action "closePointTooltip" point on="mouseLeave"}}
/>
{{/each}}
</g>

View File

@@ -0,0 +1,23 @@
<text class="title {{fillClass}}" transform="translate(5,-5)">{{name}}</text>
<text class="hide-control" {{action 'hideChart'}}>HIDE</text>
<rect class="g-background" height="{{height}}"></rect>
{{chart/g-ruler yScale=yScale yRulers=yRulers width=width unit=unit}}
<path class="line {{strokeClass}}" d="{{lineFunction}}" transform="{{nestedTransform}}"></path>
<g transform="{{nestedTransform}}">
{{#if openPointTooltip}}
<text x="{{currentPoint.tip.x}}" y="{{currentPoint.tip.y}}" class="tool-tip {{fillClass}}" >
{{currentPoint.tip.label}}
</text>
{{/if}}
{{#each points as |point|}}
<circle cx="{{point.x}}" cy="{{point.y}}" r="4" class="point {{strokeClass}}" stroke-width="2" fill="white"
{{action "openPointTooltip" point on="mouseEnter"}}
{{action "closePointTooltip" point on="mouseLeave"}}
/>
{{/each}}
</g>

View File

@@ -0,0 +1,66 @@
{{#if isSummary}}
<h2 class="summary-title">{{step.title}}</h2>
{{save-status record=checkin}}
{{checkin/summary-step onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep') }}
{{else}}
{{#if isStart}}
{{checkin/start-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{else if isConditions}}
{{checkin/trackables-step
step=step
trackeds=checkin.conditions
trackableType='condition'
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isHarveyBradshawIndex}}
{{checkin/hbi-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{else if isPromotionRate}}
{{checkin/promotion-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{else if isSymptoms}}
{{checkin/trackables-step
step=step
trackeds=checkin.symptoms
trackableType='symptom'
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isTreatments}}
{{checkin/trackables-step
step=step
trackeds=checkin.treatments
trackableType='treatment'
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isHeathFactors}}
{{checkin/health-factors-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{/if}}
{{/if}}
{{checkin-navigation checkin=checkin}}

View File

@@ -0,0 +1,3 @@
{{#each steps as |step|}}
{{link-to step.shortTitle 'checkin.show' checkinId step.stepName}}
{{/each}}

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}}

View File

@@ -0,0 +1,5 @@
{{#if exportIsScheduled}}
You will get an email with your data soon
{{else}}
<a {{action 'scheduleDataExport'}}>Download my data</a>
{{/if}}

View File

@@ -0,0 +1,25 @@
{{#if visible}}
<div class="emoji-menu" {{action "toggleMenu"}}>
<div class="flaredown-white-box" {{action "noAction" bubbles=false}}>
<div class="emoji-menu-tabs">
<a {{action "selectGroup" "smile"}} class="emoji-menu-tab {{smileClass}}"></a>
<a {{action "selectGroup" "flower"}} class="emoji-menu-tab {{flowerClass}}"></a>
<a {{action "selectGroup" "bell"}} class="emoji-menu-tab {{bellClass}}"></a>
<a {{action "selectGroup" "car"}} class="emoji-menu-tab {{carClass}}"></a>
<a {{action "selectGroup" "grid"}} class="emoji-menu-tab {{gridClass}}"></a>
</div>
<hr class="devider">
<div class="emoji-items-wrap">
{{#each-in selectedGroup as |title style| }}
<a class="emoji-item" title={{title}}>
<div style={{style}} {{action "selectIcon" title}}></div>
</a>
{{/each-in}}
</div>
</div>
</div>
{{/if}}
<a {{action "toggleMenu"}}>{{yield}}</a>

View File

@@ -0,0 +1,2 @@
<div style={{style}}></div>
<div>{{reaction.count}}</div>

View File

@@ -0,0 +1,7 @@
{{#each reactable.reactions as |reaction|}}
{{emoji-reaction reaction=reaction onParticipate=(action "onEmojiSelect")}}
{{/each}}
{{#if isAuthenticatedUser}}
{{#emoji-menu onSelect=(action "onEmojiSelect")}}Add reaction{{/emoji-menu}}
{{/if}}

View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path fill="#ffffff" fill-rule="evenodd" d="M8 14H3.667C2.733 13.9 2 13.167 2 12.233V3.667A1.65 1.65 0 0 1
3.667 2h8.666A1.65 1.65 0 0 1 14 3.667v8.566c0 .934-.733
1.667-1.667
1.767H10v-3.967h1.3l.7-2.066h-2V6.933c0-.466.167-.9.867-.9H12v-1.8c.033
0-.933-.266-1.533-.266-1.267 0-2.434.7-2.467
2.133v1.867H6v2.066h2V14z"></path>
</svg>
<span>{{yield}}</span>

After

Width:  |  Height:  |  Size: 471 B

View File

@@ -0,0 +1,11 @@
<label for={{for}}>
{{label}}
</label>
{{yield this}}
{{#if hasError}}
<p class="error-message">
{{errors}}
</p>
{{/if}}

View File

@@ -0,0 +1 @@
{{yield}}

View File

@@ -0,0 +1,131 @@
{{#if chartLoaded }}
<svg width='100%' height={{SVGHeight}}>
<g class="health-chart-viewport" transform="translate(0, {{seriePadding}})">
{{#each-in series as |category charts|}}
{{#each charts as |chart|}}
{{#if chart.blank}}
{{#if (includes category 'conditions' 'symptoms')}}
{{chart/g-blank-trackable
model=chart.model
width=seriesWidth
height=serieHeight
padding=seriePadding
startAt=startAt
category=category
timeline=timeline
chartOffset=chart.chartOffset
}}
{{else if (includes category 'treatments' 'tags' 'foods')}}
{{chart/g-blank-flat
model=chart.model
width=seriesWidth
height=flatHeight
padding=seriePadding
startAt=startAt
category=category
timeline=timeline
chartOffset=chart.chartOffset
}}
{{/if}}
{{else}}
{{#if (includes category 'conditions' 'symptoms')}}
{{chart/g-trackable
endAt=endAt
model=chart.model
width=seriesWidth
height=serieHeight
padding=seriePadding
startAt=startAt
category=category
checkins=checkins
timeline=timeline
chartOffset=chart.chartOffset
}}
{{else if (includes category 'treatments' 'tags' 'foods')}}
{{chart/g-flat
endAt=endAt
model=chart.model
width=seriesWidth
height=flatHeight
padding=seriePadding
startAt=startAt
category=category
checkins=checkins
timeline=timeline
chartOffset=chart.chartOffset
}}
{{else if (includes category 'harveyBradshawIndices')}}
{{chart/g-hbi
name=chart.name
field=chart.field
width=seriesWidth
height=serieHeight
padding=seriePadding
startAt=startAt
category=category
checkins=checkins
timeline=timeline
chartOffset=chart.chartOffset
}}
{{else if (includes category 'weathersMeasures')}}
{{chart/g-weather
name=chart.name
unit=chart.unit
field=chart.field
width=seriesWidth
height=serieHeight
padding=seriePadding
startAt=startAt
category=category
checkins=checkins
timeline=timeline
chartOffset=chart.chartOffset
}}
{{/if}}
{{/if}}
{{/each}}
{{/each-in}}
{{chart/g-timeline
endAt=endAt
width=seriesWidth
startAt=startAt
SVGWidth=SVGWidth
timeline=timeline
onMouseHover=(action "openInfoWindow")
onMouseLeave=(action "closeInfoWindow")
onDateClicked=(action "setCurrentDate")
timelineLength=timelineLength
totalSeriesHeight=totalSeriesHeight
}}
</g>
{{#if openInfoWindow }}
<line x1="{{xPosition}}" y1="0" x2="{{xPosition}}" y2="{{totalSeriesHeight}}" class="vertical-line" />
{{/if}}
</svg>
<div class="chart-enabler">
{{#power-select
disabled=isChartEnablerDisabled
options=hiddenCharts
placeholder=chartEnablerPlaceholder
onchange=(action (mut chartToShow))
searchField="label"
renderInPlace=true
searchEnabled=true
class="fs-private"
as |chart| }}
{{chart.label}}
{{/power-select}}
</div>
{{chart-navigation
date=centeredDate
endAt=endAt
startAt=startAt
onNavigate=(action 'navigate')
}}
{{else}}
{{partial "application/three-bounce-spinner"}}
{{/if}}

View File

@@ -0,0 +1,13 @@
<div class="btn-group vert-offset-top-1 vert-offset-bottom-1">
<button {{action "showChart"}} class={{if (or journalIsVisible patternsVisible) "" "active"}}>Charts</button>
<button {{action "showPatterns"}} class={{ if (or journalIsVisible chartVisible) "" "active" }}>Patterns</button>
<button {{action "showJournal"}} class={{if (or chartVisible patternsVisible) "" "active"}}>Journal</button>
</div>
{{#if journalIsVisible}}
{{journal-list}}
{{else if chartVisible}}
{{health-chart onDateClicked=(action "routeToCheckin")}}
{{else}}
{{chart-patterns}}
{{/if}}

View File

@@ -0,0 +1,12 @@
{{#form-for for=model onSubmit="acceptInvitation"}}
{{#form-field for="email" label="Email"}}
{{input value=model.email placeholder="Email"}}
{{/form-field}}
{{#form-field for="password" label="Password"}}
{{input type="password" value=model.password placeholder="Password"}}
{{/form-field}}
{{input type="submit" value="Unlock early access"}}
{{/form-for}}

View File

@@ -0,0 +1 @@
<span>Join Flaredown</span>

View File

@@ -0,0 +1,11 @@
<h6 class="centered">{{date}}</h6>
<p>{{checkin.note}}</p>
<p>{{pip-label symptomCeil}} symptoms</p>
<div class="progress-container vert-offset-bottom-2">
<div class="progressbar" style={{style}}></div>
</div>
{{link-to 'Edit' 'checkin.show' checkinId 'summary'}}

View File

@@ -0,0 +1,13 @@
{{#each checkins as |checkin|}}
{{journal-entry checkin=checkin}}
{{/each}}
{{#if noCheckinsPresent}}
<div class="centered vert-offset-top-2">No journal entries yet</div>
{{/if}}
{{ember-ic-you triggerDistance=40}}
{{#if loadingCheckins}}
{{partial "application/three-bounce-spinner"}}
{{/if}}

View File

@@ -0,0 +1,2 @@
{{input type="checkbox" checked=checked}}
<div class="checkbox {{if checked bgColorClass}}"></div>

View File

@@ -0,0 +1,23 @@
{{#form-for onSubmit=(action "authenticateWithDevise")}}
<div class="form-field">
<label for="identification">Email</label>
{{input value=identification placeholder='Enter Email' class='form-control fs-private' type='email'}}
</div>
<div class="form-field">
<label for="password">Password</label>
{{input value=password placeholder='Enter Password' class='form-control' type='password'}}
</div>
<p>
Not a member yet? {{#link-to 'signup'}}Signup Now{{/link-to}}
</p>
{{input type="submit" class="btn btn-default right" value="Login"}}
{{/form-for}}
{{#if errorMessage}}
<div class="alert alert-danger">
<p>
<strong>Login failed:</strong> <code>{{errorMessage}}</code>
</p>
</div>
{{/if}}
{{#link-to 'password.reset'}}Forgot password{{/link-to}}

View File

@@ -0,0 +1,8 @@
{{#if objects}}
<h4>{{title}}</h4>
<ul>
{{#each objects as |obj|}}
<li><a href="#" {{action "clickObj" obj}}>{{obj.name}}</a></li>
{{/each}}
</ul>
{{/if}}

View File

@@ -0,0 +1,21 @@
{{#link-to 'posts' class='bottom-link'}}
<svg
class="icon"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
viewBox="0 0 20 20"
>
<path
fill= "#F07670"
d="M2.7,18.5C2.7,18.5,2.7,18.5,2.7,18.5c0.9-0.1,1.7-0.2,2,0c1.5,1,3.3,1.5,5.3,1.5
c5.5,0,10-4.5,10-10c0-5.5-4.5-10-10-10C4.5,0,0,4.5,0,10c0,1.8,0.5,3.5,1.3,5c0.2,0.4,0.1,1-0.1,1.7c0,0,0,0,0,0
c-0.2,0.6-0.5,1.3-0.8,1.8c0.1,0.1,0.2,0.1,0.3,0.1C1.2,18.7,1.9,18.6,2.7,18.5z"
/>
<text fill="#FFFFFF" font-size="12px" text-anchor="middle" transform="matrix(1, 0, 0, 1, 9.766, 13.8708)">
{{notifications.unread.length}}
</text>
</svg>
<label>CHAT</label>
{{/link-to}}

View File

@@ -0,0 +1,14 @@
<div class="navigation-wrapper">
{{#link-to "index" class="logo"}}<img src="/assets/logo.svg">{{/link-to}}
<nav role="navigation">
<ul class="navigation-menu">
<li class="nav-link"><a href="#" {{action "goToTodaysCheckins"}}>Checkins</a></li>
<li class="nav-link">{{#link-to "chart"}}History{{/link-to}}</li>
{{#if session.currentUser}}
<li class="nav-link">{{#link-to "posts"}}Discuss{{/link-to}}</li>
{{/if}}
<li class="nav-link">{{#link-to "settings"}}Settings{{/link-to}}</li>
</ul>
</nav>
</div>

View File

@@ -0,0 +1,43 @@
<div class="flex-container left-nav">
{{#if navigateBackHistory}}
<a {{action "navigateBack" class="mobile-back-button"}}>{{inline-svg 'left-arrow' class='icon'}}</a>
{{/if}}
</div>
<h5 class="centered page-title">{{if isAuthenticatedUser title 'Join our awesome community!'}}</h5>
<div class="flex-container right-nav">
<a href="/" {{action "toggleSearchBar"}}>
{{inline-svg 'discussion-search' class='icon'}}
</a>
{{#link-to 'posts.profile'}}{{inline-svg 'discussion-profile' class='icon'}}{{/link-to}}
{{#if session.currentUser}}
{{#link-to 'notifications' class=(if notifications.unread 'notification' '')}}
{{inline-svg 'discussion-notification' class='icon'}}
{{/link-to}}
{{/if}}
</div>
{{#if showSearch}}
<div class="flex-container search-resource">
{{#power-select
class="fs-private"
search=(action "searchObjects")
options=optionObjects
onchange=(action "goToSelectedTopic")
placeholder="Search topics..."
renderInPlace=true
allowClear=true
as |object| }}
{{object.name}}
<div class="typeTopickable">
{{capitalize object.modelType}} - {{pluralize object.usersCount "user"}}
</div>
{{/power-select}}
<a href="/" {{action "toggleSearchBar"}}>
{{inline-svg 'close' class='icon'}}
</a>
</div>
{{/if}}

View File

@@ -0,0 +1,28 @@
{{#form-for for=model onSubmit="saveProfile"}}
{{#form-field for="notify" class="checkbox" label="Email me when someone responds to my posts"}}
{{input
type="checkbox"
checked=(mut model.notify)
bgColorClass="colorable-bg-35"
}}
{{/form-field}}
{{!-- {{#form-field for="notify_top_posts" label="Email me about weekly top posts"}}
{{label-switch
checked=(mut model.notifyTopPosts)
bgColorClass="colorable-bg-35"
}}
{{/form-field}} --}}
{{#if showReminder}}
{{add-reminder model=model title="Should we remind you to check in?"}}
{{/if}}
{{#unless forOnboarding}}
<br>
{{input type="submit" value=(if isLoading "Saving..." "Save") disabled=isLoading}}
{{/unless}}
{{/form-for}}

View File

@@ -0,0 +1,55 @@
<h2>{{step.title}}</h2>
{{#if step.hint}}
<div class="tip">{{{step.hint}}}</div>
{{/if}}
{{#if isPersonal}}
{{onboarding/personal-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{else if isDemographic}}
{{onboarding/demographic-step
step=step
onGoBack=(action 'moveToPrevStep')
onStepCompleted=(action 'moveToNextStep')
}}
{{else if isConditions}}
{{onboarding/conditions-step
step=step
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isSymptoms}}
{{onboarding/symptoms-step
step=step
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isTreatments}}
{{onboarding/treatments-step
step=step
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isReminder}}
{{onboarding/reminder-step
model=model
step=step
onStepCompleted=(action 'moveToNextStep')
onGoBack=(action 'moveToPrevStep')
}}
{{else if isCompleted}}
{{onboarding/completed-step
step=step
onGoBack=(action 'moveToPrevStep')
}}
{{/if}}

View File

@@ -0,0 +1,6 @@
<img src="/assets/onboarding-success-sm.png" class="success_img">
{{step-controls step=step
forwardLabel="Checkin"
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,4 @@
{{add-trackings trackableType="condition"}}
{{step-controls step=step
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,52 @@
{{#form-for for=profile}}
{{#form-field for="ethnicities"
label="Ethnic Origin"}}
{{#power-select-multiple options=ethnicities
placeholder="Select all that apply"
selected=profile.ethnicities
onchange=(action (mut profile.ethnicities))
renderInPlace=true
searchEnabled=false
class="fs-private" as |ethnicity| }}
{{ethnicity.name}}
{{/power-select-multiple}}
{{/form-field}}
{{#form-field for="dayHabit"
label="How you spend most of your day?"}}
{{#power-select options=dayHabits
placeholder="Select one option"
selected=profile.dayHabit
selectedItemComponent="power-select/selected-name"
onchange=(action (mut profile.dayHabit))
renderInPlace=true
searchEnabled=false
class="fs-private" as |dayHabit| }}
{{power-select/dropdown-name-desc option=dayHabit}}
{{/power-select}}
{{/form-field}}
{{#form-field for="educationLevel"
label="Highest level of education completed"}}
{{#power-select options=educationLevels
placeholder="Select one option"
selected=profile.educationLevel
onchange=(action (mut profile.educationLevel))
renderInPlace=true
searchEnabled=false
class="fs-private" as |educationLevel| }}
{{educationLevel.name}}
{{/power-select}}
{{/form-field}}
{{#form-field for="dayWalkingHours"
label="How many hours a day do you spend walking or exercising, on average?"}}
{{input type="number" id="input-num" keyUp=(action "validateNumber") value=profile.dayWalkingHours maxlength=2 class="fs-private" min=0 max=24 pattern="[0-9]"}}
{{/form-field}}
{{/form-for}}
{{step-controls step=step
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,3 @@
{{profile-form model=model.profile forOnboarding=true }}
{{step-controls step=step
onForward=(action 'completeStep') }}

View File

@@ -0,0 +1,4 @@
{{add-reminder model=model.profile}}
{{step-controls step=step
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,4 @@
{{add-trackings trackableType="symptom"}}
{{step-controls step=step
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,4 @@
{{add-trackings trackableType="treatment"}}
{{step-controls step=step
onBackward=(action "goBack")
onForward=(action "completeStep") }}

View File

@@ -0,0 +1,31 @@
<div class="flaredown-white-box">
{{#if oracleSpinnerVisible}}
<p>Analyzing symptoms...</p>
{{partial "application/three-bounce-spinner"}}
{{else}}
<h5>Just a few things we need to know to guess your conditions:</h5>
{{#form-for for=model onSubmit="askOracle"}}
{{input value=model.age placeholder="Age" type="number"}}
{{#power-select
class="fs-private"
options=sexes
onchange=(action (mut model.sex))
selected=model.sex
placeholder="Sex"
renderInPlace=true
searchEnabled=false
as |sex| }}
{{sex.name}}
{{/power-select}}
<h5>What recurring symptoms do you experience?</h5>
{{oracle/symptom-multiselect model=model}}
{{input type="submit" class="submit" value="Guess my conditions" disabled=model.notReady}}
{{/form-for}}
{{/if}}
</div>

View File

@@ -0,0 +1,43 @@
<div>
{{name}} {{confidence}}
</div>
{{#radio-button
name=elementId
value="doctorDiagnosed"
changed="correctionChanged"
disabled=disabled
groupValue=correction
}}
Doctor diagnosed
{{/radio-button}}
{{#radio-button
name=elementId
value="selfDiagnosed"
changed="correctionChanged"
disabled=disabled
groupValue=correction
}}
Self-diagnosed
{{/radio-button}}
{{#radio-button
name=elementId
value="unknown"
changed="correctionChanged"
disabled=disabled
groupValue=correction
}}
Unknown
{{/radio-button}}
{{#radio-button
name=elementId
value="dontHaveThis"
changed="correctionChanged"
disabled=disabled
groupValue=correction
}}
I don't have this
{{/radio-button}}

View File

@@ -0,0 +1,46 @@
<div class="flaredown-white-box">
<p>THIS IS NOT A DIAGNOSIS</p>
<p>The information below is the result of an experimental algorithm and should not be considered medical advice</p>
{{#if isResponce}}
<h5>Results</h5>
{{#each model.responce as |result|}}
{{oracle/result-item item=result model=model}}
{{/each}}
{{else}}
<p>We were unable to calculate the result</p>
{{/if}}
{{#if model.canEdit}}
<h5>Add conditions we missed</h5>
{{#power-select
class="fs-private"
search=(action "searchObjects")
options=randomTrackables
onchange=(action "addCondition")
placeholder="Add a condition"
renderInPlace=true
as |object| }}
{{object.name}}
{{/power-select}}
{{/if}}
</div>
<div class="flaredown-white-box">
{{#fb-share-button adaptive=false}}Share{{/fb-share-button}}
{{#twitter-share-button adaptive=false}}Tweet{{/twitter-share-button}}
{{tumblr-share}}
</div>
<div class="flaredown-white-box">
<h5>Get a Flaredown account, you're already halfway done!</h5>
<p><i>Some screenshots here</i></p>
<p>Design your health profile, track your symptoms and treatments, and learn to control your illness.</p>
{{link-to "Create account" "signup"}}
</div>

View File

@@ -0,0 +1,18 @@
<ul>
{{#each objects as |object|}}
<li class="choosen-object" {{action "remove" object}}>
<div class="badge-text">{{object.name}}</div>
</li>
{{/each}}
</ul>
{{#power-select
class="fs-private"
search=(action "searchObjects")
options=randomTrackables
onchange=(action "add")
placeholder="Add a symptom"
renderInPlace=true
as |object| }}
{{object.name}}
{{/power-select}}

View File

@@ -0,0 +1,3 @@
{{textBeforeLink}}
{{link-to 'here' 'password.reset'}}
{{textAfterLink}}

View File

@@ -0,0 +1,33 @@
{{#unless svgInitial}}
{{pattern/chart-hover
svg=svg
data=data
xScale=xScale
width=svgChartWidth
height=svgChartHeigth
backgroundMargin=backgroundMargin
startAt=startAt
endAt=endAt
}}
{{/unless}}
<svg width={{svgWidth}} height={{svgHeight}}></svg>
{{yield (hash
svg=svg
data=data
width=svgWidth
svgChartWidth=svgChartWidth
height=svgChartHeigth
svgLineAreaHeight=svgLineAreaHeight
hasLines=hasLines
svgLineOffset=svgLineOffset
svgLineHeight=svgLineHeight
xScale=xScale
yScaleStatic=yScaleStatic
endAt=endAt
svgInitial=svgInitial
backgroundMarginRight=backgroundMargin.right
)
}}

View File

@@ -0,0 +1 @@
<div class='tooltip-area'></div>

View File

@@ -0,0 +1,49 @@
{{#form-for for onSubmit="createPattern"}}
{{#form-field for="patternName" label="Pattern name"}}
{{input type="text" value=model.name}}
{{/form-field}}
<div class="pattern-items">
<label>{{selectLabel}}</label>
{{#if showMessage}}
<span>{{maxTrackablesText}}</span>
{{/if}}
<div class="selectedItems">
<ul>
{{#each model.includes as |object|}}
<li class="choosen-object" {{action "clicked" object}}>
<div class="regular">{{object.label}}</div>
</li>
{{/each}}
</ul>
</div>
{{#power-select
disabled=isChartEnablerDisabled
options=options
placeholder=chartEnablerPlaceholder
onchange=(action 'handleChange')
searchField="label"
renderInPlace=true
searchEnabled=true
class="fs-private"
as |chart|}}
{{chart.label}}
{{/power-select}}
</div>
<br>
<div class="history-container">
{{#if model.isNew}}
<span class="history-cancel" {{action 'cancel'}}>Cancel</span>
{{else}}
<span class="history-remove" {{action 'deletePattern'}}>{{deleteText}}</span>
{{/if}}
<button class="history-btn btn" {{action "savePattern"}} disabled={{disableSaveBtn}}>
{{saveText}}
</button>
</div>
{{/form-for}}

View File

@@ -0,0 +1,59 @@
{{#if authorPage}}
<div class="sharePatternLink">
{{#link-to 'patterns' class="history-index-btn btn"}}
Share Patterns
{{/link-to}}
</div>
{{else}}
<h3 class="centered">{{authorName}}'s Health History</h3>
{{/if}}
{{#each patterns as |pattern|}}
<div class='pattern-block'>
<span class="pattern-name">{{pattern.name}}</span>
<span class='pattern-edit' {{action 'edit' pattern}}>Edit</span>
</div>
{{#with (find-by 'pattern_id' pattern.id chartData) as |data|}}
<div class='chart-legend'>
{{#each data.series as |item|}}
{{pattern/chart-legend-item item=item}}
{{/each}}
</div>
{{#pattern/chart-group data=data
startAt=startAt
endAt=endAt
colorIds=colorIds
backgroundMargin=backgroundMargin
daysRangeOffset=daysRangeOffset
as |chart|}}
{{#each chart.data.series as |item index|}}
{{pattern/chart-item data=item index=index chart=chart}}
{{/each}}
{{/pattern/chart-group}}
{{/with}}
{{/each}}
{{#if authorPage}}
<div class="newPatternLink">
<button class="history-index-btn btn" {{action "newPattern"}}>
{{t "history.step.index.newPatternText"}}
</button>
</div>
{{/if}}
{{ember-ic-you triggerDistance=40}}
{{#if loadingPatterns}}
{{partial "application/three-bounce-spinner"}}
{{/if}}
{{chart-navigation
endAt=endAt
startAt=startAt
patternNavbar=true
onNavigate=(action 'navigate')
onChangeStartAt=(action (mut startAt))
onChangeEndAt=(action (mut endAt))
}}

View File

@@ -0,0 +1,9 @@
<h3 class="centered page-title">{{t "history.step.initial.title"}}</h3>
<p class="centered">{{t "history.step.initial.text"}}</p>
<div class="container">
<button class="history-btn" {{action "createPatternStep"}}>
{{t "history.step.initial.buttonText"}}
</button>
</div>

View File

@@ -0,0 +1,6 @@
{{#pattern/chart-group data=data startAt=startAt endAt=endAt svgInitial=true as |chart|}}
{{#each chart.data.series as |item index|}}
{{pattern/chart-item data=item index=index chart=chart initialSvg=true }}
{{/each}}
{{/pattern/chart-group}}

View File

@@ -0,0 +1,3 @@
<div class="tooltip">
<p>{{pip-label value}}</p>
</div>

View File

@@ -0,0 +1,3 @@
{{#link-to 'posts.show' notification.postId (query-params anchor=notificationAnchor) class="colorable-clr-39"}}
{{fullResponse}}
{{/link-to}}

View File

@@ -0,0 +1,6 @@
<hr>
<p class="colorable-clr-38">{{comment.userName}}</p>
<p>{{comment.bodyWithBr}}</p>
{{emoji-reactions reactable=comment isAuthenticatedUser=isAuthenticatedUser}}

View File

@@ -0,0 +1,5 @@
{{#each post.topics as |topic|}}
{{#link-to 'posts.topic' topic.modelType topic.id}}
<span class="badge-default vert-offset-bottom-0_5 badge-post-topics">{{topic.name}}</span>
{{/link-to}}
{{/each}}

View File

@@ -0,0 +1,3 @@
<div class="pictureLetter">
{{pictureLetter}}
</div>

View File

@@ -0,0 +1,9 @@
<h5>
{{#link-to 'posts.show' comment.post.id (query-params anchor=(concat 'anchor-' comment.id)) class="colorable-clr-39"}}
Responded to <b>{{comment.post.title}}</b>
{{/link-to}}
</h5>
<p>{{#link-to 'posts.show' comment.post.id class="colorable-clr-39"}}{{comment.body}}{{/link-to}}</p>
{{emoji-reactions reactable=comment}}

View File

@@ -0,0 +1,15 @@
{{#if hasBlock}}
{{yield}}
{{else}}
<h4>{{#link-to 'posts.show' post class="colorable-clr-39"}}{{post.title}}{{/link-to}}</h4>
<p>{{truncate-text post.body limit=elipsis}}</p>
{{posts/post-topics post=post}}
{{emoji-reactions reactable=post isAuthenticatedUser=isAuthenticatedUser}}
{{#if post.commentsCount}}
{{#link-to 'posts.show' post class="colorable-clr-38"}}{{post.commentsCount}} comments{{/link-to}}
{{/if}}
{{/if}}

View File

@@ -0,0 +1,2 @@
<div class="title">{{option.name}}</div>
<div class="subtitle">{{option.description}}</div>

View File

@@ -0,0 +1,2 @@
<div class="title">&ldquo;{{typedText}}&rdquo;</div>
<div class="subtitle">Add new {{trackableType}}</div>

View File

@@ -0,0 +1,2 @@
<div class="title">{{trackable.name}}</div>
<div class="subtitle">{{trackable.usersCount}} users</div>

View File

@@ -0,0 +1,40 @@
{{#form-for for=model onSubmit="saveProfile"}}
{{#unless forOnboarding}}
{{#form-field for="screenName" label="Username"}}
{{input value=model.screenName placeholder="Enter a username"}}
{{/form-field}}
{{/unless}}
{{#form-field for="country" label="Country"}}
{{#power-select options=countries
placeholder="Select a country"
selected=model.country
onchange=(action (mut model.country))
renderInPlace=true
searchEnabled=false
class="fs-private"
as |country| }}
{{country.name}}
{{/power-select}}
{{/form-field}}
{{#unless forOnboarding}}
{{#form-field for="birthDate" label="Birth Date" class="birthdayForm"}}
{{birth-date birthDate=model.birthDate}}
{{/form-field}}
{{/unless}}
{{#form-field for="sex" label="Sex" class="fs-private"}}
{{#each sexes as |sex|}}
{{#radio-button name="sex" value=sex.id groupValue=selectedSexId changed="sexChanged"}}
{{sex.name}}
{{/radio-button}}
{{/each}}
{{/form-field}}
{{#unless forOnboarding}}
<br>
{{input type="submit" value=(if isLoading "Saving..." "Save") disabled=isLoading}}
{{/unless}}
{{/form-for}}

View File

@@ -0,0 +1,44 @@
<h4>{{reviewHeader}}</h4>
{{#if showReviewPage}}
<p>{{t "step.checkin.promotion_rate.reviewText"}}</p>
<div class="reviewButtons">
<div class="reviewIOS-btn reviewBtn">
<a type="button" href={{appStoreURL}} target="_blank" class="btn-primary reviewIOS">
{{t "step.checkin.promotion_rate.reviewIosLabel"}}
</a>
</div>
<div class="reviewGP-btn reviewBtn">
<a type="button" href={{googlePlayUrl}} target="_blank" class="btn-primary reviewGP">
{{t "step.checkin.promotion_rate.reviewGPLabel"}}
</a>
</div>
</div>
<p>{{t "step.checkin.promotion_rate.reviewShare"}}</p>
<div class="reviewSocials">
{{share-socials url=shareUrl title=shareTitles divideTitles=true}}
</div>
{{else}}
<div class="reviewPromotionScore">
{{textarea rows="6" value=(mut pr.feedback) placeholder=(t "step.checkin.promotion_rate.feedBackPlaceHolder")}}
</div>
<div class="container">
<button class="btn-primary pr-btn" {{action "sendFeedback"}} disabled={{not pr.feedback}}>
{{feedBackLabel}}
</button>
</div>
{{/if}}
{{step-controls
step=step
onForward=onForward
linkForward=true
onBackward=onBackward
forwardLabel="Next"
stepHasPrev=stepHasPrev
}}

View File

@@ -0,0 +1,11 @@
<h4>{{resetPassMessage}}</h4>
{{#form-for onSubmit="resetPassword"}}
<div class="form-field">
<label for="identification">Email</label>
{{input value=model.email placeholder='name@domain.com' class='form-control'}}
</div>
{{#link-to 'login'}}Back to Login{{/link-to}}
{{input type="submit" class="btn btn-primary right" value="Reset your password"}}
{{/form-for}}

View File

@@ -0,0 +1,11 @@
{{#if record.isSaving}}
Saving changes...
{{else if record.hasDirtyAttributes}}
{{#if saveFailed}}
<span class="error-message">{{{saveFailureMessage}}}</span>
{{else}}
You have unsaved changes, please wait
{{/if}}
{{else}}
All changes saved
{{/if}}

View File

@@ -0,0 +1,7 @@
{{#if divideTitles}}
{{#fb-share-btn url=baseUrl}}Share{{/fb-share-btn}}
{{#twitter-share-btn url=baseUrl title=title.tw}}Tweet{{/twitter-share-btn}}
{{else}}
{{#fb-share-btn url=post.show title=title text=text}}Share{{/fb-share-btn}}
{{#twitter-share-btn url=post.show title=title text=text}}Tweet{{/twitter-share-btn}}
{{/if}}

View File

@@ -0,0 +1,38 @@
<h3 class="centered">{{t "sharedPatterns.dialog.title"}}</h3>
{{#form-for class="sharedPatternList" for=patterns onSubmit="sharedPatterns"}}
{{#each patterns as |pattern|}}
{{#form-field class="sharedPattern" for="shared" label=pattern.name}}
{{label-switch
checked=(mut pattern.checked)
bgColorClass="colorable-bg-35"
}}
{{/form-field}}
{{/each}}
<div class="loadMore centered">
<a href="#" {{action "requestData"}} class="{{checkinNavClass}}">
{{t "sharedPatterns.dialog.loadMore"}}
</a>
</div>
{{#if loadingPatterns}}
{{partial "application/three-bounce-spinner"}}
{{/if}}
{{input type="submit"
value=(t "sharedPatterns.dialog.buttonText")
disabled=nothingChecked
class="sharedPatternBtn"}}
{{/form-for}}
{{#unless nothingChecked}}
<div class="sharedPatternUrl">
<label>{{t "sharedPatterns.dialog.sharedUrl"}}</label>
{{input value=encryptedUrl}}
</div>
{{/unless}}
<div class="sharedBottom centered">
{{#link-to 'chart'}}{{t "sharedPatterns.dialog.done"}}{{/link-to}}
</div>

View File

@@ -0,0 +1,54 @@
{{#form-for for=model onSubmit="save"}}
{{#form-field for="email" label="Email"}}
{{input value=model.email placeholder="Enter your email" class="fs-private"}}
{{/form-field}}
{{#form-field for="password" label="Password"}}
{{input type="password" value=model.password placeholder="Enter a secure password"}}
{{/form-field}}
{{#form-field for="screenName" label="Username"}}
<p class="p-note">Other users will never see your data. Your username will only be displayed if you choose to post in the Flaredown chat.</p>
{{input value=model.screenName placeholder="Enter a username" class="fs-private"}}
{{/form-field}}
{{#form-field for="birthDate" label="Birth Date" class="birthdayForm"}}
{{birth-date birthDate=model.birthDate}}
{{#if (and isError isShowError)}}
<p class="error-message" style="margin-top: 0;">
You must be 16 years or older to use this app according to international privacy regulations. Sorry :(
</p>
{{else}}
{{#if isBlankError}}
<p class="error-message" style="margin-top: 0;">
can't be blank
</p>
{{/if}}
{{/if}}
{{/form-field}}
<div class="checkbox" style="margin: 0.5em 0 1em;">
{{input type="checkbox" checked=model.acceptPrivacyTerms}}
I accept the&nbsp;{{#link-to 'terms-of-service'}}Terms&nbsp;of&nbsp;Service{{/link-to}}&nbsp;and&nbsp;{{#link-to 'privacy-policy'}}Privacy&nbsp;Policy{{/link-to}}
{{#if (eq model.acceptPrivacyTerms false)}}
<p class="error-message" style="margin-top: 0; font-weight: bold; font-size: 0.9em;">
Please, accept the Terms of Service and Privacy Policy.
</p>
{{/if}}
</div>
{{#form-field for="captchaResponse" label="Are you a robot?"}}
{{g-recaptcha onSuccess=(action "onCaptchaResolved") ref=(mut gRecaptcha) }}
{{/form-field}}
<br>
<p>Already have an account? {{#link-to 'login'}}Log in{{/link-to}}</p>
{{input type="submit" class="btn-primary" value="Create account"}}
{{/form-for}}
{{#if errorMessage}}
<div class="alert alert-danger">
<p><strong>Signup failed:</strong> <code>{{errorMessage}}</code></p>
</div>
{{/if}}

View File

@@ -0,0 +1,26 @@
<div class="back container step-back">
{{#if (and showBack stepHasPrev)}}
<a class="{{if disabled 'disabled'}}" {{action "backward"}}>{{backLabel}}</a>
{{else if (not showBack stepHasPrev)}}
<button class="btn-primary summary-btn discussion-btn" {{action "discussion"}}>
{{inline-svg 'discuss_white' class='icon'}}
<span>Chat</span>
</button>
{{else}}
&nbsp;
{{/if}}
</div>
<div class="forward container step-forward">
{{#if linkForward}}
<a class="{{if disabled 'disabled'}}" {{action "forward"}}>{{forwardLabel}}</a>
{{else}}
<button class="btn-primary summary-btn {{if disabled 'disabled'}}" {{action "forward"}}>
{{forwardLabel}}
{{#if (not showBack stepHasPrev)}}
<span>My history</span>
{{/if}}
</button>
{{/if}}
</div>

View File

@@ -0,0 +1,11 @@
{{#if showHeaderLogo}}
<img src="/assets/logo.svg" class="img-logo">
{{#if showHeaderPath}}
{{#if (eq currentPathTitle 'signup')}}
<h4>Create your Flaredown account</h4>
{{else}}
<h4>{{capitalize currentPathTitle}}</h4>
{{/if}}
{{/if}}
{{/if}}

View File

@@ -0,0 +1,14 @@
{{#power-select-with-create options=randomTrackables
search=(action "searchObjects")
onchange=(action "handleChange")
oncreate=(action "createTrackable")
showCreateWhen=(action "shouldShowCreateOption")
selectedItemComponent="power-select/selected-name"
buildSuggestion=(action "handleBuildSuggestion")
placeholder=placeholder
renderInPlace=true
class="flat"
disabled=disabled
as |trackable| }}
{{power-select/dropdown-trackable trackable=trackable}}
{{/power-select-with-create}}

View File

@@ -0,0 +1 @@
<a class="tumblr-share-button" data-color="blue" data-notes="none" href={{currentUrl}}></a>

View File

@@ -0,0 +1,2 @@
<i></i>
<span>{{yield}}</span>

View File

@@ -0,0 +1,22 @@
{{#form-for for=model onSubmit="updatePassword"}}
{{#if session.isAuthenticated}}
{{#form-field for="currentPassword" label="Current password"}}
{{input type="password" value=model.currentPassword placeholder='Current password' class='form-control'}}
{{/form-field}}
{{/if}}
{{#form-field for="password" label="New Password"}}
{{input type="password" value=model.password placeholder='New Password' class='form-control'}}
{{/form-field}}
{{#form-field for="passwordConfirmation" label="Password Confirmation"}}
{{input type="password" value=model.passwordConfirmation placeholder='Password Confirmation' class='form-control'}}
{{/form-field}}
{{#unless session.isAuthenticated}}
{{#link-to 'login'}}Back to Login{{/link-to}}
{{/unless}}
{{input type="submit" class="btn btn-primary" value=(if isLoading "Updating..." "Update your password") disabled=isLoading}}
{{/form-for}}

Some files were not shown because too many files have changed in this diff Show More