updated library 'lib/shell'

This commit is contained in:
Namhyeon Go 2020-07-07 18:02:51 +09:00
parent 3902523e9d
commit da0d03cc1d
4 changed files with 123 additions and 76 deletions

10
app.js
View File

@ -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);
}

View File

@ -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);

38
lib/shell.js Normal file
View File

@ -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;

View File

@ -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;
}
}