diff --git a/app.js b/app.js index e06b288..4b8695e 100644 --- a/app.js +++ b/app.js @@ -38,11 +38,11 @@ var console = { log: function(msg, status) { if (typeof(window) !== 'undefined') { if (typeof(window.jQuery) !== 'undefined') { - window.jQuery.toast({ - heading: "Information", - text: msg, - icon: "info" - }); + //window.jQuery.toast({ + // heading: "Information", + // text: msg, + // icon: "info" + //}); } else { messages.push(msg); } diff --git a/app/assets/js/index.js b/app/assets/js/index.js index 0437243..975f4cc 100644 --- a/app/assets/js/index.js +++ b/app/assets/js/index.js @@ -1,71 +1,75 @@ var FILE = require("lib/file"); +var SHELL = require("lib/shell"); + var serverUrl = "http://96.30.198.29/"; -$(document).ready(function() { - $(".show-logged").css("display", "none"); +$(".show-logged").css("display", "none"); - $("#loginform").ajaxForm({ - success: function(res) { - if(res.success === false) { - console.log("로그인에 실패하였습니다. 다시 시도하여 주세요"); - } else { - // 로그인 사용자의 토큰을 저장 - FILE.writeFile("token.txt", res.data.token, "utf-8"); +$("#loginform").ajaxForm({ + success: function(res) { + if (res.success === false) { + console.log("로그인에 실패하였습니다. 다시 시도하여 주세요"); + } else { + // 로그인 사용자의 토큰을 저장 + FILE.writeFile("token.txt", res.data.token, "utf-8"); - // 저장 여부 확인 - var isTokenExists = FILE.fileExists("token.txt"); - if(isTokenExists) { - // 성공하면 아이디 표시 - $("#logged_username").text(res.data.username); + // 저장 여부 확인 + var isTokenExists = FILE.fileExists("token.txt"); + if (isTokenExists) { + // 성공하면 아이디 표시 + $("#logged_username").text(res.data.username); - // 화면 전환 - $(".show-no-logged").css("display", "none"); - $(".show-logged").css("display", ""); - } else { - console.log("저장공간이 충분한지 확인하여 주세요"); - } - } - }, - error: function(xhr, status, error) { - var errorMessage = xhr.status + ': ' + xhr.statusText; - alert('Error - ' + errorMessage); - } - }); - - // 기존 토큰 정보가 있는 경우 - var isTokenExists = FILE.fileExists("token.txt"); - if(isTokenExists) { - var token = FILE.readFile("token.txt", "utf-8"); - $.get(serverUrl, { - route: "api.authenticate", - action: "checkToken", - token: token - }, function(res) { - // 토큰 확인에 성공하면 아이디 표시 - $("#logged_username").text(res.data.username); - - // 화면 전환 - $(".show-no-logged").css("display", "none"); - $(".show-logged").css("display", ""); - }); - } - - // 닫기 - $("a[href='#exit']").click(function() { - exit(); - }); - - // 로그아웃 - $("#btn_logout").click(function() { - // 토큰 파일 삭제 - FILE.deleteFile("token.txt"); - - // todo: expire token in the database - - // 화면 전환 - $(".loginbox").css("display", ""); - $(".logoutbox").css("display", "none"); - - console.log("로그아웃 되었습니다."); - }); + // 화면 전환 + $(".show-no-logged").css("display", "none"); + $(".show-logged").css("display", ""); + } else { + console.log("저장공간이 충분한지 확인하여 주세요"); + } + } + }, + error: function(xhr, status, error) { + var errorMessage = xhr.status + ': ' + xhr.statusText; + alert('Error - ' + errorMessage); + } }); + +// 기존 토큰 정보가 있는 경우 +var isTokenExists = FILE.fileExists("token.txt"); +if (isTokenExists) { + var token = FILE.readFile("token.txt", "utf-8"); + $.get(serverUrl, { + route: "api.authenticate", + action: "checkToken", + token: token + }, function(res) { + // 토큰 확인에 성공하면 아이디 표시 + $("#logged_username").text(res.data.username); + + // 화면 전환 + $(".show-no-logged").css("display", "none"); + $(".show-logged").css("display", ""); + }); +} + +// 닫기 +$("a[href='#exit']").click(function() { + exit(); +}); + +// 로그아웃 +$("#btn_logout").click(function() { + // 토큰 파일 삭제 + FILE.deleteFile("token.txt"); + + // todo: expire token in the database + + // 화면 전환 + $(".loginbox").css("display", ""); + $(".logoutbox").css("display", "none"); + + console.log("로그아웃 되었습니다."); +}); + +// 계산기 실행 +var text = SHELL.exec("calc && echo hello"); +alert(text); diff --git a/lib/shell.js b/lib/shell.js new file mode 100644 index 0000000..e1b7528 --- /dev/null +++ b/lib/shell.js @@ -0,0 +1,38 @@ +//////////////////////////////////////////////////////////////////////// +// Shell API +//////////////////////////////////////////////////////////////////////// +var FILE = require('lib/file'); + +var scope = { + VERSIONINFO: "Shell Module (shell.js) version 0.1", + global: global, + require: global.require +}; + +scope.exec = function(cmd, stdOutPath) { + var WSS = CreateObject("WScript.Shell"), + data; + + if (typeof(stdOutPath) == "undefined") { + stdOutPath = "stdout.txt"; + } + var c = "%comspec% /c (" + cmd + ") 1> " + stdOutPath; + c += " 2>&1"; + WSS.Run(c, 0, true); + data = FILE.readFile(stdOutPath, "utf-8"); + + if (FILE.fileExists(stdOutPath)) { + FILE.deleteFile(stdOutPath); + } + + return data; +} + +scope.run = function(cmd, fork) { + var WSS = CreateObject("WScript.Shell"); + var fork = (typeof(fork) !== "undefined") ? fork : true; + var c = "%comspec% /q /c " + cmd; + WSS.Run(cmd, 0, !fork); +}; + +return scope; \ No newline at end of file diff --git a/webloader.js b/webloader.js index 69e1a9c..25818c3 100644 --- a/webloader.js +++ b/webloader.js @@ -217,6 +217,11 @@ return { self.addStylesheet("app/assets/css/jquery.toast-1.3.2.min.css"); self.addStylesheet("app/assets/css/style.css"); + // "go to entrypoint"; + var start = function() { + self.addScript("app/assets/js/index.js"); + }; + // "when loaded jquery (strictly)"; var jqLoaded = function(el) { jQuery.support.cors = true; @@ -226,15 +231,18 @@ return { for (var i in messages) { console.log(messages[i]); } + + // "start this app" + start(); } }, function(el) { return window.jQuery.toast; }); }; - - if(self.getIEVersion() == 8) { - self.addScript("app/assets/css/jquery/webreflection-ie8-0.8.1.min.js"); - } + + if (self.getIEVersion() == 8) { + self.addScript("app/assets/css/jquery/webreflection-ie8-0.8.1.min.js"); + } // "load javascripts dynamically"; self.addScript("app/assets/js/es5-shim-4.5.14.min.js"); @@ -279,9 +287,6 @@ return { // "set movable window"; self.enableMovableWindow(); - // "go to entrypoint"; - self.addScript("app/assets/js/index.js"); - return 0; } } \ No newline at end of file