From 3b1a2a55d2d8135e2550b577abfafdf1208b0722 Mon Sep 17 00:00:00 2001 From: LEE WOONG JAE <2woongjae@vtouch.kr> Date: Mon, 14 Dec 2015 20:07:45 +0900 Subject: [PATCH] add data interface --- data.json | 1 + index.html | 45 ++++++++++++++++++++ main.js | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 4 files changed, 160 insertions(+) create mode 100644 data.json diff --git a/data.json b/data.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/data.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/index.html b/index.html index 8d710f0..29e299f 100644 --- a/index.html +++ b/index.html @@ -9,5 +9,50 @@

Hello World!

We are using node , Chrome , and Electron . + + + + diff --git a/main.js b/main.js index 068bdf8..b22f219 100644 --- a/main.js +++ b/main.js @@ -3,6 +3,119 @@ const electron = require('electron'); const app = electron.app; // Module to control application life. const BrowserWindow = electron.BrowserWindow; // Module to create native browser window. +const fs = require("fs"); +const moment = require('moment'); + +const ipcMain = require('electron').ipcMain; + +/* + * 제목 + * 프로젝트 + * 내용 + * 작성일 또는 수정일 + * due date +*/ + +/* + * Data 읽기 +*/ +ipcMain.on('read', function(event, arg) { + + // arg 는 없이 받고 + // data 를 send + + event.sender.send('read', JSON.parse(fs.readFileSync("./data.json"))); + +}); + +/* + * Data 추가 +*/ +ipcMain.on('add', function(event, arg) { + + // args 는 글 데이타, 작성 시간 추가 필요 + var data = JSON.parse(fs.readFileSync("./data.json")); + + var obj = { + + title:arg.title, + project:arg.project, + contents:arg.contents, + reg_date:Number(moment()) + + } + + data.push(obj); + + fs.writeFileSync("./data.json", JSON.stringify(data)); + + // 다시 읽어서 보내기 + event.sender.send('read', JSON.parse(fs.readFileSync("./data.json"))); + +}); + +/* + * Data 수정 +*/ +ipcMain.on('edit', function(event, arg) { + + // 글을 읽어서 + var data = JSON.parse(fs.readFileSync("./data.json")); + + // 시간이 같은 글 찾아서 나머지 항목 바꾸기 + for (var i = 0; i < data.length; i++) { + + if (data[i].reg_date = arg.reg_date) { + + data[i].title = arg.title; + data[i].project = arg.project; + data[i].contents = arg.contents; + data[i].reg_date = Number(moment()); // 시간 수정 + + } + + } + + // 수정하기 + fs.writeFileSync("./data.json", JSON.stringify(data)); + + // 다시 읽어서 보내기 + event.sender.send('read', JSON.parse(fs.readFileSync("./data.json"))); + +}); + +/* + * Data 삭제 +*/ +ipcMain.on('delete', function(event, arg) { + + // 글을 읽어서 + var data = JSON.parse(fs.readFileSync("./data.json")); + + // 시간이 같은 글 찾아서 지우기 + var new_data = []; + + for (var i = 0; i < data.length; i++) { + + if (data[i].reg_date = arg.reg_date) continue; + + new_data.push(data[i]); + + } + + // 수정하기 + fs.writeFileSync("./data.json", JSON.stringify(new_data)); + + // 다시 읽기 + event.sender.send('read', JSON.parse(fs.readFileSync("./data.json"))); + +}); + +ipcMain.on('', function(event, arg) { + console.log(arg); // "ping" 출력 + event.sender.send('asynchronous-reply', 'pong'); +}); + // Report crashes to our server. electron.crashReporter.start(); diff --git a/package.json b/package.json index ec34e4a..3d372c9 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "angular2": "^2.0.0-alpha.48", + "moment": "^2.10.6", "systemjs": "^0.19.6" } }