|
@@ -22,15 +22,17 @@ if($patient->rtm_msk_protocol_detail_json) {
|
|
|
<div class="d-flex align-items-baseline mb-2">
|
|
|
<b>Exercises</b>
|
|
|
<div class="ml-2 position-relative">
|
|
|
- <a href="#" v-on:click.prevent="showLibrary = !showLibrary">Add From Library</a>
|
|
|
+ <a href="#" v-on:click.prevent="toggleLibrary()">Add From Library</a>
|
|
|
<div v-if="showLibrary" class="position-absolute px-2 pt-2 border bg-white min-width-500px">
|
|
|
<p class="mb-2 text-nowrap text-secondary d-flex align-items-baseline">
|
|
|
<span class="font-weight-bold">Exercises Library</span>
|
|
|
<span class="text-sm ml-2">(click to add)</span>
|
|
|
+ <input type="text" class="form-control form-control-sm min-width-unset mx-3" placeholder="Filter" v-model="filter">
|
|
|
<a href="#" class="ml-auto text-secondary" v-on:click.prevent="showLibrary = !showLibrary"><i class="fa fa-times-circle"></i></a>
|
|
|
</p>
|
|
|
<div class="max-height-400px overflow-auto">
|
|
|
<div v-for="(exercise, index) in library"
|
|
|
+ v-if="!$.trim(filter) || exercise.name.toLowerCase().indexOf(filter.toLowerCase()) !== -1"
|
|
|
class="p-2 border mb-2 on-hover-aliceblue c-pointer"
|
|
|
v-on:click.prevent="addActivity(exercise)">
|
|
|
<div class="d-flex align-items-baseline">
|
|
@@ -84,12 +86,19 @@ if($patient->rtm_msk_protocol_detail_json) {
|
|
|
'el': '#protocol-builder-{{$patient->uid}}',
|
|
|
delimiters: ['@{{', '}}'],
|
|
|
data: {
|
|
|
+ filter: '',
|
|
|
programNotesEditMode: false,
|
|
|
showLibrary: false,
|
|
|
protocol: {!! json_encode($data) !!},
|
|
|
library: {!! json_encode(config('rtm.exercises')) !!}
|
|
|
},
|
|
|
methods: {
|
|
|
+ toggleLibrary: function() {
|
|
|
+ this.showLibrary = !this.showLibrary;
|
|
|
+ if(this.showLibrary) {
|
|
|
+ this.filter = '';
|
|
|
+ }
|
|
|
+ },
|
|
|
addActivity: function(_exercise) {
|
|
|
let activity = {
|
|
|
name: _exercise.name,
|