Ver código fonte

RTM protocol exercise library filter

Vijayakrishnan 2 anos atrás
pai
commit
bfcf163370

+ 10 - 1
resources/views/app/patient/rtm/protocol-builder.blade.php

@@ -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,