Skip to content

Commit a4cd0b0

Browse files
feat: Add delete button to EventEditor modal
Also removed it from Stopwatch view so you don't delete events by mistake, you now have to click the "Edit" button first.
1 parent 4429745 commit a4cd0b0

4 files changed

Lines changed: 25 additions & 12 deletions

File tree

‎src/components/EventEditor.vue‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,16 @@ div
3232

3333
hr
3434

35+
div.float-left
36+
b-button.mx-1(@click="delete_(); $emit('close');" variant="danger")
37+
icon.mx-1(name="trash")
38+
| Delete
3539
div.float-right
3640
b-button.mx-1(@click="$emit('close');")
41+
icon.mx-1(name="times")
3742
| Cancel
3843
b-button.mx-1(@click="save(); $emit('close');", variant="primary")
44+
icon.mx-1(name="save")
3945
| Save
4046
</template>
4147

@@ -44,6 +50,10 @@ div
4450
<script>
4551
import moment from 'moment';
4652
53+
import 'vue-awesome/icons/times';
54+
import 'vue-awesome/icons/save';
55+
import 'vue-awesome/icons/trash';
56+
4757
export default {
4858
name: 'EventEditor',
4959
props: {
@@ -82,6 +92,11 @@ export default {
8292
this.$emit('save', this.editedEvent);
8393
await this.$aw.replaceEvent(this.bucket_id, this.editedEvent);
8494
},
95+
async delete_() {
96+
// This emit needs to be called first, otherwise it won't occur for some reason
97+
this.$emit('delete', this.editedEvent);
98+
await this.$aw.deleteEvent(this.bucket_id, this.editedEvent.id);
99+
},
85100
},
86101
};
87102
</script>

‎src/components/StopwatchEntry.vue‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,8 @@ div
2020
b-button.mx-1(v-b-modal="'edit-modal-' + event.id", variant="outline-dark", size="sm")
2121
icon.ml-0.mr-1(name="edit")
2222
| Edit
23-
b-button.mx-1(@click="delete_", variant="outline-danger", size="sm")
24-
icon.mx-0(name="trash")
25-
//| Delete
2623
b-modal(:id="'edit-modal-' + event.id", ref="eventEditModal", title="Edit event", centered, hide-footer)
27-
event-editor(:event="event", :bucket_id="bucket_id", @save="save", @close="$refs.eventEditModal.hide()")
24+
event-editor(:event="event", :bucket_id="bucket_id", @save="save", @delete="delete_", @close="$refs.eventEditModal.hide()")
2825
</template>
2926

3027
<style scoped lang="scss">
@@ -38,7 +35,6 @@ import moment from 'moment';
3835
import 'vue-awesome/icons/edit';
3936
import 'vue-awesome/icons/stop';
4037
import 'vue-awesome/icons/play';
41-
import 'vue-awesome/icons/trash';
4238
4339
import EventEditor from './EventEditor.vue';
4440
@@ -66,8 +62,8 @@ export default {
6662
save: async function(new_event) {
6763
this.$emit('update', new_event);
6864
},
69-
delete_: async function() {
70-
this.$emit('delete', this.event);
65+
delete_: async function(new_event) {
66+
this.$emit('delete', new_event);
7167
},
7268
},
7369
};

‎src/views/Stopwatch.vue‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ div
2222
h3 Running
2323
div(v-for="e in runningTimers")
2424
stopwatch-entry(:event="e", :bucket_id="bucket_id", :now="now",
25-
@delete="deleteTimer", @update="updateTimer")
25+
@delete="removeTimer", @update="updateTimer")
2626
hr(style="margin: 0")
2727
div(v-else)
2828
span(style="color: #555") No stopwatch running
@@ -34,7 +34,7 @@ div
3434
h5.mt-2.mb-1 {{ k }}
3535
div(v-for="e in timersByDate[k]")
3636
stopwatch-entry(:event="e", :bucket_id="bucket_id", :now="now",
37-
@delete="deleteTimer", @update="updateTimer", @new="startTimer(e.data.label)")
37+
@delete="removeTimer", @update="updateTimer", @new="startTimer(e.data.label)")
3838
hr(style="margin: 0")
3939
div(v-else)
4040
span(style="color: #555") No history to show
@@ -119,8 +119,7 @@ export default {
119119
}
120120
},
121121
122-
deleteTimer: async function(event) {
123-
await this.$aw.deleteEvent(this.bucket_id, event.id);
122+
removeTimer: function(event) {
124123
this.events = _.filter(this.events, e => e.id != event.id);
125124
},
126125

‎src/visualizations/EventList.vue‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ div
3131

3232
// TODO: Refactor modal into event-editor component?
3333
b-modal(:id="'edit-modal-' + event.id", ref="eventEditModal", title="Edit event", centered, hide-footer)
34-
event-editor(:event="event", :bucket_id="bucket_id", @save="(e) => $emit('save', e)", @close="$bvModal.hide('edit-modal-' + event.id)")
34+
event-editor(:event="event", :bucket_id="bucket_id", @save="(e) => $emit('save', e)", @delete="removeEvent" @close="$bvModal.hide('edit-modal-' + event.id)")
3535
</template>
3636

3737
<style scoped lang="scss">
@@ -137,6 +137,9 @@ export default {
137137
this.isListExpanded = !this.isListExpanded;
138138
console.log('List should be expanding: ', this.isListExpanded);
139139
},
140+
removeEvent: function(event) {
141+
this.events = _.filter(this.events, e => e.id != event.id);
142+
},
140143
},
141144
};
142145
</script>

0 commit comments

Comments
 (0)