Skip to content

Commit 443528f

Browse files
Merge pull request #214 from ActivityWatch/dev/move-delete-button
feat: Add delete button to EventEditor modal
2 parents 4429745 + 9319fca commit 443528f

4 files changed

Lines changed: 35 additions & 18 deletions

File tree

src/components/EventEditor.vue

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="pug">
2-
div
2+
b-modal(:id="'edit-modal-' + event.id", ref="eventEditModal", title="Edit event", centered, hide-footer)
33
table(style="width: 100%")
44
tr
55
th Bucket
@@ -32,10 +32,16 @@ div
3232

3333
hr
3434

35+
div.float-left
36+
b-button.mx-1(@click="delete_(); close();" variant="danger")
37+
icon.mx-1(name="trash")
38+
| Delete
3539
div.float-right
36-
b-button.mx-1(@click="$emit('close');")
40+
b-button.mx-1(@click="close")
41+
icon.mx-1(name="times")
3742
| Cancel
38-
b-button.mx-1(@click="save(); $emit('close');", variant="primary")
43+
b-button.mx-1(@click="save(); 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,15 @@ 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.event);
98+
await this.$aw.deleteEvent(this.bucket_id, this.event.id);
99+
},
100+
close() {
101+
this.$refs.eventEditModal.hide();
102+
this.$emit('close', this.event);
103+
},
85104
},
86105
};
87106
</script>

src/components/StopwatchEntry.vue

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ 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
26-
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()")
23+
event-editor(:event="event", :bucket_id="bucket_id", @save="save", @delete="delete_")
2824
</template>
2925

3026
<style scoped lang="scss">
@@ -38,7 +34,6 @@ import moment from 'moment';
3834
import 'vue-awesome/icons/edit';
3935
import 'vue-awesome/icons/stop';
4036
import 'vue-awesome/icons/play';
41-
import 'vue-awesome/icons/trash';
4237
4338
import EventEditor from './EventEditor.vue';
4439
@@ -66,8 +61,8 @@ export default {
6661
save: async function(new_event) {
6762
this.$emit('update', new_event);
6863
},
69-
delete_: async function() {
70-
this.$emit('delete', this.event);
64+
delete_: async function(new_event) {
65+
this.$emit('delete', new_event);
7166
},
7267
},
7368
};

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: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ div
2929
b-btn(v-b-modal="'edit-modal-' + event.id", variant="outline-dark" size="sm")
3030
| Edit
3131

32-
// TODO: Refactor modal into event-editor component?
33-
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)")
32+
event-editor(
33+
:event="event", :bucket_id="bucket_id",
34+
@save="(e) => $emit('save', e)", @delete="removeEvent"
35+
)
3536
</template>
3637

3738
<style scoped lang="scss">
@@ -137,6 +138,9 @@ export default {
137138
this.isListExpanded = !this.isListExpanded;
138139
console.log('List should be expanding: ', this.isListExpanded);
139140
},
141+
removeEvent: function(event) {
142+
this.events = _.filter(this.events, e => e.id != event.id);
143+
},
140144
},
141145
};
142146
</script>

0 commit comments

Comments
 (0)