Skip to content

Commit

Permalink
Merge pull request #12 from richjyoung/release/v1.5.0
Browse files Browse the repository at this point in the history
Release/v1.5.0
  • Loading branch information
richjyoung authored Apr 3, 2018
2 parents c4b580a + 7e59203 commit ada1bbd
Show file tree
Hide file tree
Showing 17 changed files with 940 additions and 148 deletions.
File renamed without changes.
107 changes: 107 additions & 0 deletions app/sqlite3db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
const { app, ipcMain } = require('electron');
const path = require('path');
const sqlite3 = require('sqlite3').verbose();
const mkdirp = require('mkdirp');
const touch = require('touch');

module.exports = (function(){

const upgrade_map = {
0: upgrade_0_to_1
};

var db;

function open_db() {
const default_db_root = path.join(app.getPath('userData'));
const default_db = path.join(default_db_root, 'default.db');

mkdirp(default_db_root, function(err){
if(err) {
console.error(err);
} else {
touch(default_db, function() {
db = new sqlite3.Database(default_db, sqlite3.OPEN_READWRITE, (err) => {
if(err){
console.error('Failed to open database at ' + default_db);
console.error(err);
} else {
console.log('Connected to database');
load_version();
}
});
});
}
});
}

function load_version() {
db.get('PRAGMA user_version;', (err, result) => {
if(err) {
console.error(err);
}
console.log('Database version ' + result.user_version);
if(result.user_version <= Math.max(Object.keys(upgrade_map))) {
console.log('Upgrading database...');
upgrade_map[result.user_version]();
}
});
}

function upgrade_0_to_1() {
var query = [
'CREATE TABLE IF NOT EXISTS corkboard (',
'id INTEGER PRIMARY KEY,',
'type TEXT NOT NULL,',
'content TEXT,',
'title TEXT,',
'x INTEGER,',
'y INTEGER,',
'z INTEGER,',
'deleted INTEGER DEFAULT 0,',
'settings TEXT',
');'
].join('');

db.get(query, (err) => {
if(err) {
console.error(err);
}
complete_upgrade(1);
});
}

function complete_upgrade(version) {
var query = 'PRAGMA user_version=' + version + ';';
db.get(query, (err) => {
if(err) {
console.error(err);
}
load_version();
});
}

ipcMain.on('sqlite3_db_all', (event, arg) => {
console.log('Received db transaction request ' + arg.id);
db.all(arg.query, arg.params, (err, rows) => {
if(err) {
console.error(err);
}
console.log('Completed db transaction request ' + arg.id);
event.sender.send('sqlite3_db_all_callback', {
id: arg.id,
err: err,
rows: rows
});
});
});

return open_db;

})();






2 changes: 1 addition & 1 deletion window.js → app/window.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ module.exports = function(index) {
win.setMenu(null);

win.loadURL(url.format({
pathname: path.join(__dirname, index),
pathname: path.resolve(__dirname, '..', index),
protocol: 'file:',
slashes: true
}));
Expand Down
22 changes: 0 additions & 22 deletions data/indexeddb.js

This file was deleted.

22 changes: 19 additions & 3 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,27 @@ import store from './state';
import { clipboard } from 'electron';
import {
A_APP_TOGGLE_GODMODE,
A_BOARD_ADD_ITEM
A_BOARD_ADD_ITEM,
A_LOAD_ALL
} from './state/action_types';

import rem_to_px from './utils/rem_to_px';

window.vm = new Vue({
el: '#corkboard',
store,
created: function() {
document.onkeydown = this.keydown;
},
mounted: function() {
this.$store.dispatch(A_LOAD_ALL);
},
methods: {
keydown: function(e) {
if(e.key == 'v' && e.ctrlKey) {
this.paste();
} else if (e.key == 'n' && e.ctrlKey) {
this.new_sticky();
} else if (e.key == 'r' && e.ctrlKey) {
location.reload();
} else if (e.key == 's' && e.ctrlKey) {
Expand All @@ -25,14 +33,22 @@ window.vm = new Vue({
this.$store.dispatch(A_APP_TOGGLE_GODMODE);
}
},
new_sticky: function() {
this.$store.dispatch(A_BOARD_ADD_ITEM, {
x: (window.innerWidth - rem_to_px(15)) / 2,
y: (window.innerHeight - rem_to_px(15)) / 2,
z: this.$store.getters.item_max_field('z') + 1,
type: 'sticky'
});
},
paste: function() {

var clipboard_text = clipboard.readText();
if(clipboard_text) {
console.log('Pasting text ' + clipboard_text + '...');
this.$store.dispatch(A_BOARD_ADD_ITEM, {
x: window.innerWidth / 2,
y: window.innerHeight / 2,
x: (window.innerWidth - rem_to_px(15)) / 2,
y: (window.innerHeight - rem_to_px(15)) / 2,
z: this.$store.getters.item_max_field('z') + 1,
type: 'sticky',
content: clipboard_text.trim()
Expand Down
6 changes: 4 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const { app } = require('electron');
const window = require('./window');
const ipc_setup = require('./ipc');
const window = require('./app/window');
const ipc_setup = require('./app/ipc');
const database_setup = require('./app/sqlite3db');

let win;

Expand All @@ -11,6 +12,7 @@ app.on('ready', function() {
win = null;
});
ipc_setup(win);
database_setup();
console.log('Application started');
});

Expand Down
Loading

0 comments on commit ada1bbd

Please sign in to comment.