added 260907 version of worker toolkit
This commit is contained in:
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1 @@
|
||||
{{yield}}
|
||||
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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}}>
|
||||
|
||||
{{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}}>
|
||||
|
||||
{{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}}>
|
||||
|
||||
{{startAtLabel}} - {{endAtLabel}}
|
||||
|
||||
{{pick-a-date
|
||||
date=(readonly date)
|
||||
options=(readonly pickadateOptions)
|
||||
on-selected=(action (mut date))
|
||||
}}
|
||||
</a>
|
||||
|
||||
<span>
|
||||
{{inline-svg 'eye' class='eye-icon'}}
|
||||
|
||||
{{visibleChartsCount}} visible
|
||||
</span>
|
||||
|
||||
<div class="rigth-arrow">
|
||||
<a {{action 'navigateRight'}}>
|
||||
{{inline-svg 'arrow-right' class='arrow-icon'}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
@@ -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>
|
||||
@@ -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}})"
|
||||
/>
|
||||
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1 @@
|
||||
<g id="{{xAxisElementId}}" class="axis timeline"></g>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -0,0 +1,3 @@
|
||||
{{#each steps as |step|}}
|
||||
{{link-to step.shortTitle 'checkin.show' checkinId step.stepName}}
|
||||
{{/each}}
|
||||
@@ -0,0 +1,7 @@
|
||||
{{save-status record=checkin}}
|
||||
|
||||
<h2>{{step.title}}</h2>
|
||||
|
||||
{{#if step.hint}}
|
||||
<div class="tip">{{{step.hint}}}</div>
|
||||
{{/if}}
|
||||
@@ -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}}
|
||||
@@ -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'}}
|
||||
|
||||
{{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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -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")
|
||||
}}
|
||||
@@ -0,0 +1,4 @@
|
||||
<h2>Journal</h2>
|
||||
{{textarea value=(mut checkin.note)
|
||||
placeholder="Leave a note about your day"
|
||||
class="note-textarea fs-private" }}
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -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") }}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,41 @@
|
||||
{{label-switch checked=(mut isTaken)
|
||||
bgColorClass=model.bgClass}}
|
||||
|
||||
<div class="treatment-data">
|
||||
<h4 class="name {{unless isTaken 'untaken'}}" {{action "titleClicked"}}>
|
||||
{{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}}
|
||||
<span class="x-to-remove" {{action 'clearDose'}}>×</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -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}}°{{temperatureUnits}}</h3>
|
||||
<label>Low</label>
|
||||
</div>
|
||||
|
||||
<div class="measurement clickable" {{action "toggleTemperatureUnits"}}>
|
||||
<h3>{{shownTemperatureMax}}°{{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}}
|
||||
@@ -0,0 +1,5 @@
|
||||
{{#if exportIsScheduled}}
|
||||
You will get an email with your data soon
|
||||
{{else}}
|
||||
<a {{action 'scheduleDataExport'}}>Download my data</a>
|
||||
{{/if}}
|
||||
@@ -0,0 +1 @@
|
||||
{{yield}}
|
||||
@@ -0,0 +1 @@
|
||||
{{yield}}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,2 @@
|
||||
<div style={{style}}></div>
|
||||
<div>{{reaction.count}}</div>
|
||||
@@ -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}}
|
||||
@@ -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 |
@@ -0,0 +1,11 @@
|
||||
<label for={{for}}>
|
||||
{{label}}
|
||||
</label>
|
||||
|
||||
{{yield this}}
|
||||
|
||||
{{#if hasError}}
|
||||
<p class="error-message">
|
||||
{{errors}}
|
||||
</p>
|
||||
{{/if}}
|
||||
@@ -0,0 +1 @@
|
||||
{{yield}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1 @@
|
||||
<span>Join Flaredown</span>
|
||||
@@ -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'}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1,2 @@
|
||||
{{input type="checkbox" checked=checked}}
|
||||
<div class="checkbox {{if checked bgColorClass}}"></div>
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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") }}
|
||||
@@ -0,0 +1,4 @@
|
||||
{{add-trackings trackableType="condition"}}
|
||||
{{step-controls step=step
|
||||
onBackward=(action "goBack")
|
||||
onForward=(action "completeStep") }}
|
||||
@@ -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") }}
|
||||
@@ -0,0 +1,3 @@
|
||||
{{profile-form model=model.profile forOnboarding=true }}
|
||||
{{step-controls step=step
|
||||
onForward=(action 'completeStep') }}
|
||||
@@ -0,0 +1,4 @@
|
||||
{{add-reminder model=model.profile}}
|
||||
{{step-controls step=step
|
||||
onBackward=(action "goBack")
|
||||
onForward=(action "completeStep") }}
|
||||
@@ -0,0 +1,4 @@
|
||||
{{add-trackings trackableType="symptom"}}
|
||||
{{step-controls step=step
|
||||
onBackward=(action "goBack")
|
||||
onForward=(action "completeStep") }}
|
||||
@@ -0,0 +1,4 @@
|
||||
{{add-trackings trackableType="treatment"}}
|
||||
{{step-controls step=step
|
||||
onBackward=(action "goBack")
|
||||
onForward=(action "completeStep") }}
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -0,0 +1,3 @@
|
||||
{{textBeforeLink}}
|
||||
{{link-to 'here' 'password.reset'}}
|
||||
{{textAfterLink}}
|
||||
@@ -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
|
||||
)
|
||||
}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<div class='tooltip-area'></div>
|
||||
@@ -0,0 +1 @@
|
||||
{{item.label}}
|
||||
@@ -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}}
|
||||
|
||||
@@ -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))
|
||||
}}
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="tooltip">
|
||||
<p>{{pip-label value}}</p>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
{{#link-to 'posts.show' notification.postId (query-params anchor=notificationAnchor) class="colorable-clr-39"}}
|
||||
{{fullResponse}}
|
||||
{{/link-to}}
|
||||
@@ -0,0 +1,6 @@
|
||||
<hr>
|
||||
|
||||
<p class="colorable-clr-38">{{comment.userName}}</p>
|
||||
<p>{{comment.bodyWithBr}}</p>
|
||||
|
||||
{{emoji-reactions reactable=comment isAuthenticatedUser=isAuthenticatedUser}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="pictureLetter">
|
||||
{{pictureLetter}}
|
||||
</div>
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1,2 @@
|
||||
<div class="title">{{option.name}}</div>
|
||||
<div class="subtitle">{{option.description}}</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
<div class="title">“{{typedText}}”</div>
|
||||
<div class="subtitle">Add new {{trackableType}}</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
<div class="title">{{trackable.name}}</div>
|
||||
<div class="subtitle">{{trackable.usersCount}} users</div>
|
||||
@@ -0,0 +1 @@
|
||||
{{option.name}}
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
}}
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1 @@
|
||||
{{yield}}
|
||||
@@ -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}}
|
||||
@@ -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>
|
||||
@@ -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 {{#link-to 'terms-of-service'}}Terms of Service{{/link-to}} and {{#link-to 'privacy-policy'}}Privacy 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}}
|
||||
@@ -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}}
|
||||
|
||||
{{/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>
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -0,0 +1 @@
|
||||
<a class="tumblr-share-button" data-color="blue" data-notes="none" href={{currentUrl}}></a>
|
||||
@@ -0,0 +1,2 @@
|
||||
<i></i>
|
||||
<span>{{yield}}</span>
|
||||
@@ -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
Reference in New Issue
Block a user