Skip to content

Commit

Permalink
Merge pull request #15 from timschwab/delete-to-drop
Browse files Browse the repository at this point in the history
Delete to drop
  • Loading branch information
Tim Schwab authored May 1, 2019
2 parents 643b414 + abcd9ce commit 58d8809
Show file tree
Hide file tree
Showing 17 changed files with 153 additions and 161 deletions.
32 changes: 16 additions & 16 deletions client/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const searchPage = require('./SearchPage')
const viewPage = require('./ViewPage')
const addPage = require('./AddPage')
const editPage = require('./EditPage')
const deletedPage = require('./DeletedPage')
const droppedPage = require('./DroppedPage')

let vm

Expand All @@ -30,11 +30,11 @@ document.addEventListener('DOMContentLoaded', () => {
showEditPage: function() {
return this.page.slice(0, 5) == 'edit:'
},
showDeletedPage: function() {
return this.page == 'deleted'
showDroppedPage: function() {
return this.page == 'dropped'
},
showDeletedViewPage: function() {
return this.page.slice(0, 13) == 'view-deleted:'
showDroppedViewPage: function() {
return this.page.slice(0, 13) == 'view-dropped:'
},
viewingID: function() {
if (this.showViewPage) {
Expand All @@ -50,8 +50,8 @@ document.addEventListener('DOMContentLoaded', () => {
return null
}
},
deletedID: function() {
if (this.showDeletedViewPage) {
droppedID: function() {
if (this.showDroppedViewPage) {
return this.page.slice(13)
} else {
return null
Expand Down Expand Up @@ -95,28 +95,28 @@ document.addEventListener('DOMContentLoaded', () => {
:snippetID="editingID"
></edit-page>
<deleted-page
v-show="showDeletedPage"
<dropped-page
v-show="showDroppedPage"
v-on:page="page = $event"
v-on:message="message = $event"
:visible="showDeletedPage"
></deleted-page>
:visible="showDroppedPage"
></dropped-page>
<view-page
v-show="showDeletedViewPage"
v-show="showDroppedViewPage"
v-on:page="page = $event"
v-on:message="message = $event"
:snippetID="deletedID"
:deleted=true
:snippetID="droppedID"
:dropped=true
></view-page>
</div>
</div>
`
})
})

ipcRenderer.on('menu:deleted', (event, results) => {
vm.page = 'deleted'
ipcRenderer.on('menu:dropped', (event, results) => {
vm.page = 'dropped'
})
24 changes: 12 additions & 12 deletions client/DeletedPage.js → client/DroppedPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const Vue = require('vue/dist/vue.js')

let vm

Vue.component('deleted-page', {
Vue.component('dropped-page', {
created: function() {
vm = this
},
Expand All @@ -16,25 +16,25 @@ Vue.component('deleted-page', {
watch: {
visible: function() {
if (this.visible) {
ipcRenderer.send('get:deleted', {})
ipcRenderer.send('get:dropped', {})
}
}
},
template: `
<div id="deleted-page">
<div id="deleted-links">
<div id="dropped-page">
<div id="dropped-links">
<p><a href="#" v-on:click="$emit('page', 'search')">Back to search results</a></p>
</div>
<div v-for="snippet in snippets">
<p>
<snippet-preview
:snippet="snippet"
:deleted=true
:dropped=true
:key="snippet.id"
v-on:view="$emit('page', 'view-deleted:' + $event)"
v-on:view="$emit('page', 'view-dropped:' + $event)"
v-on:restore="restoreSnippet"
v-on:delete="deleteSnippet"
v-on:destroy="dropSnippet"
></snippet-preview>
</p>
</div>
Expand All @@ -44,21 +44,21 @@ Vue.component('deleted-page', {
restoreSnippet: function(id) {
ipcRenderer.send('restore', id)
},
deleteSnippet: function(id) {
ipcRenderer.send('delete:permanent', id)
destroySnippet: function(id) {
ipcRenderer.send('destroy', id)
}
}
})

ipcRenderer.on('get:deleted-result', (event, snippets) => {
ipcRenderer.on('get:dropped-result', (event, snippets) => {
vm.snippets = snippets
})

// If the list has changed, then reload it.
let events = ['restore', 'delete:permanent']
let events = ['restore', 'destroy']
events.forEach(event => {
ipcRenderer.on(event + '-result', () => {
ipcRenderer.send('get:deleted', {})
ipcRenderer.send('get:dropped', {})
})
})

Expand Down
2 changes: 1 addition & 1 deletion client/SearchPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ ipcRenderer.on('search-result', (event, results) => {
})

// If the search results might have been changed, then reload them.
let events = ['add', 'edit:change', 'delete', 'restore']
let events = ['add', 'edit:change', 'drop', 'restore']
events.forEach(event => {
ipcRenderer.on(event + '-result', () => {
ipcRenderer.send('search', vm.query)
Expand Down
6 changes: 3 additions & 3 deletions client/SnippetPreview.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
const Vue = require('vue/dist/vue.js')

Vue.component('snippet-preview', {
props: ['snippet', 'deleted'],
props: ['snippet', 'dropped'],
template: `
<div class="snippet-preview">
<hr />
<p>
<a href="#" v-on:click="$emit('view', snippet.id)">{{ snippet.problem }}</a>
<span v-if="deleted">
<span v-if="dropped">
-
<a href="#" v-on:click="$emit('restore', snippet.id)">Restore</a>
|
<a href="#" v-on:click="$emit('delete', snippet.id)">Delete</a>
<a href="#" v-on:click="$emit('destroy', snippet.id)">Destroy</a>
</span>
<span v-else>
Expand Down
24 changes: 12 additions & 12 deletions client/ViewPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ Vue.component('view-page', {
this.snippet = snippet
})

// Server deleted a snippet
ipcRenderer.on('delete-result', (event, result) => {
// Server dropped a snippet
ipcRenderer.on('drop-result', (event, result) => {
if (result.status == 'success') {
this.$emit('message', 'Snippet deleted')
this.$emit('message', 'Snippet dropped')
this.$emit('page', 'search')
} else {
this.$emit('message', 'Snippet could not be deleted')
this.$emit('message', 'Snippet could not be dropped')
console.log(result)
}
})
},
props: ['snippetID', 'deleted'],
props: ['snippetID', 'dropped'],
data: function() {
return {
snippet: {
Expand Down Expand Up @@ -60,30 +60,30 @@ Vue.component('view-page', {
</ul>
</div>
<div class="card-footer">
<div v-if="deleted">
<button class="btn btn-danger float-right mx-1" v-on:click="deletePermanent"><i class="fa fa-trash"></i> Delete Permanently</button>
<div v-if="dropped">
<button class="btn btn-danger float-right mx-1" v-on:click="destroySnippet"><i class="fa fa-trash"></i> Destroy</button>
<button class="btn btn-primary float-right mx-1" v-on:click="restoreSnippet"><i class="fa fa-undo"></i> Restore</button>
</div>
<div v-else>
<button class="btn btn-danger float-right mx-1" v-on:click="deleteSnippet"><i class="fa fa-trash"></i> Delete</button>
<button class="btn btn-danger float-right mx-1" v-on:click="dropSnippet"><i class="fa fa-trash"></i> Drop</button>
<button class="btn btn-secondary float-right mx-1" v-on:click="editSnippet"><i class="fa fa-edit"></i> Edit</button>
</div>
</div>
</div>
</div>
`,
methods: {
deleteSnippet: function() {
dropSnippet: function() {
if (this.snippetID) {
ipcRenderer.send('delete', this.snippetID)
ipcRenderer.send('drop', this.snippetID)
}
},
editSnippet: function() {
this.$emit('page', 'edit:' + this.snippetID)
},
deletePermanent: function() {
ipcRenderer.send('delete:permanent', this.snippetID)
destroySnippet: function() {
ipcRenderer.send('destroy', this.snippetID)
},
restoreSnippet: function() {
ipcRenderer.send('restore', this.snippetID)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cheatsheet",
"version": "1.1.2",
"version": "1.1.3",
"description": "A knowledge base for short snippets",
"main": "app.js",
"scripts": {
Expand Down
16 changes: 0 additions & 16 deletions server/delete.js

This file was deleted.

16 changes: 16 additions & 0 deletions server/drop.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const api = require('./redis-api')

function snippetDrop(event, id) {
console.log('drop: ' + id)

api.drop(id).then(result => {
event.sender.send('drop-result', {
status: 'success',
id: id
})
})
}

module.exports = {
drop: snippetDrop
}
39 changes: 39 additions & 0 deletions server/dropped.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const api = require('./redis-api')

function snippetsGet(event, data) {
console.log('get:dropped:')
console.log(data)

// Get the dropped snippets
api.getDropped(data).then(snippets => {
event.sender.send('get:dropped-result', snippets)
})
}

function snippetRestore(event, id) {
console.log('restore: ' + id)

// Restore the snippet
api.restore(id).then(result => {
event.sender.send('restore-result', {
status: 'success'
})
})
}

function snippetDestroy(event, id) {
console.log('destroy: ' + id)

// Destroy the snippet
api.destroy(id).then(result => {
event.sender.send('destroy-result', {
status: 'success'
})
})
}

module.exports = {
get: snippetsGet,
restore: snippetRestore,
destroy: snippetDestroy
}
2 changes: 1 addition & 1 deletion server/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function change(event, data) {
console.log('edit:change:')
console.log(data)

// Delete snippet
// Edit snippet
api.edit(data.id, data).then(result => {
event.sender.send('edit:change-result', {
status: 'success'
Expand Down
4 changes: 2 additions & 2 deletions server/menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ const menu = Menu.buildFromTemplate([
label: 'Remove sheet'
},
{
label: 'Recently deleted snippets',
label: 'Dropped snippets',
click(item, window) {
window.webContents.send('menu:deleted')
window.webContents.send('menu:dropped')
}
}
]
Expand Down
39 changes: 0 additions & 39 deletions server/recently-deleted.js

This file was deleted.

Loading

0 comments on commit 58d8809

Please sign in to comment.