Merge pull request #362 from h3poteto/iss-355
refs #355 Remove registerd hashtag
This commit is contained in:
commit
d25fd93a3b
|
@ -21,4 +21,19 @@ export default class Hashtags {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeTag (tag) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.db.remove(
|
||||||
|
{
|
||||||
|
tagName: tag.tagName
|
||||||
|
},
|
||||||
|
{ multi: true },
|
||||||
|
(err, numRemoved) => {
|
||||||
|
if (err) return reject(err)
|
||||||
|
resolve(numRemoved)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -637,6 +637,17 @@ ipcMain.on('list-hashtags', (event, _) => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ipcMain.on('remove-hashtag', (event, tag) => {
|
||||||
|
const hashtags = new Hashtags(hashtagsDB)
|
||||||
|
hashtags.removeTag(tag)
|
||||||
|
.then(() => {
|
||||||
|
event.sender.send('response-remove-hashtag')
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
event.sender.send('error-remove-hashtag', err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto Updater
|
* Auto Updater
|
||||||
*
|
*
|
||||||
|
|
|
@ -2,10 +2,15 @@
|
||||||
<div id="list">
|
<div id="list">
|
||||||
<table class="tag-list">
|
<table class="tag-list">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="tag in tags" v-bind:key="tag._id" @click="openTimeline(tag.tagName)">
|
<tr v-for="tag in tags" v-bind:key="tag._id" @click.stop.prevent="openTimeline(tag.tagName)">
|
||||||
<td>
|
<td>
|
||||||
{{ tag.tagName }}
|
{{ tag.tagName }}
|
||||||
</td>
|
</td>
|
||||||
|
<td class="action">
|
||||||
|
<el-button type="text" @click.stop="deleteTag(tag)">
|
||||||
|
<icon name="regular/trash-alt"></icon>
|
||||||
|
</el-button>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -28,6 +33,9 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
openTimeline (tag) {
|
openTimeline (tag) {
|
||||||
this.$router.push({ path: `/${this.$route.params.id}/hashtag/${tag}` })
|
this.$router.push({ path: `/${this.$route.params.id}/hashtag/${tag}` })
|
||||||
|
},
|
||||||
|
deleteTag (tag) {
|
||||||
|
this.$store.dispatch('TimelineSpace/Contents/Hashtag/List/removeTag', tag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,6 +59,15 @@ export default {
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-top: 1px solid var(--theme-border-color);
|
border-top: 1px solid var(--theme-border-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.action {
|
||||||
|
width: 20px;
|
||||||
|
|
||||||
|
.el-button /deep/ {
|
||||||
|
padding: 0;
|
||||||
|
color: var(--theme-secondary-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -24,6 +24,20 @@ const List = {
|
||||||
})
|
})
|
||||||
ipcRenderer.send('list-hashtags')
|
ipcRenderer.send('list-hashtags')
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
removeTag ({ dispatch }, tag) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
ipcRenderer.once('response-remove-hashtag', (event, _) => {
|
||||||
|
ipcRenderer.removeAllListeners('error-remove-hashtag')
|
||||||
|
dispatch('listTags')
|
||||||
|
resolve('deleted')
|
||||||
|
})
|
||||||
|
ipcRenderer.once('error-remove-hashtag', (event, err) => {
|
||||||
|
ipcRenderer.removeAllListeners('response-remove-hashtag')
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
ipcRenderer.send('remove-hashtag', tag)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue