MESSeries_Bate/iMES_PDA/startup.js
2025-05-20 17:00:22 +08:00

888 lines
29 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var window, platform, log, servicePlatform,win, isDebug = false, isFull;
if (typeof cordova === 'undefined') {
//判斷目前是使用NW.js 還是electron
try{
try{
var remote = nodeRequire('electron').remote;
window = win = remote.getCurrentWindow();
var appVersion = remote.app.getVersion();
if(appVersion != '6.0.1'){
//win.setFullScreen(false);
win.setMinimumSize(320, 568);
win.setSize(320, 568);
win.center();
win.setResizable(false);
win.setMaximizable(false);
isFull = true;
}
platform = 'electron';
} catch(e){
window = win = nodeRequire('nw.gui').Window.get();
isFull = true;
platform = 'nw';
}
}catch(e){
//platform = 'web';
}
//網頁時的啟動
angular.element().ready(startup);
} else {
//裝置上運行時的啟動
document.addEventListener("deviceready", function(){
try{
//設定全螢幕
AndroidFullScreen.immersiveMode(function(){
console.info("It worked!");
}, function(error){
console.error(error);
});
//綁定橫向螢幕
screen.lockOrientation('landscape');
//關閉狀態列
StatusBar.hide();
navigator.splashscreen.hide();
} catch(e){};
startup();
}, false);
}
function startup(){
init();
var domElement = document.querySelector('body');
angular.bootstrap(domElement, ["update"]);
}
function parseParamsToConfig(config){
if(platform == 'electron' || platform == 'nw'){
try{
var outside_params = [];
var remote;
if(platform == 'electron'){
remote = nodeRequire('electron').remote;
outside_params = remote.process.argv;
} else if(platform == 'nw'){
outside_params = nodeRequire('nw.gui').App.argv;
}
for(var index in outside_params){
var param = outside_params[index];
if(param.indexOf('-params?') == 0){
var paramArray = param.replace('-params?','').split(';');
for(var index_y in paramArray){
var keyValue = paramArray[index_y].split('=');
if(keyValue[0] == 'ip'){
//20201125 雋辰,新增選擇DNS/IP
var tmp = keyValue[1].split('.');
var isIP = false , isNum = true;
for (var i = 0; i < tmp.length; i++) {
if (isNaN(new Number(tmp[i]))) {
isNum = false;
break;
}
}
isIP = tmp.length == 4 && isNum;
if (isIP)
{
config.setting.DNSMode = false;
config.server.ip = keyValue[1];
}
else
{
config.setting.DNSMode = true;
config.server.DNS = keyValue[1];
}
}
if(keyValue[0] == 'port'){
config.server.port = keyValue[1];
}
if(keyValue[0] == 'name'){
config.server.name = keyValue[1];
}
if(keyValue[0] == 'eainame'){
config.server.eainame = keyValue[1];
}
}
} else if(param.indexOf('-debug') == 0){
if(platform == 'electron'){
isDebug = true;
remote.getCurrentWebContents().openDevTools();
} else if(platform == 'nw'){
isDebug = true;
win.showDevTools();
}
} else if(param.indexOf('-online') == 0){
config.cache.offline = false;
} else if(param.indexOf('-noneFullScreen') == 0){
config.setting.fullScreen = 'N'
}
}
}catch(e){
console.log(e);
}
}
localStorage.setItem(config.appName + "_server", JSON.stringify(config.server));
return config;
}
function fullScreen(config){
if(platform == 'electron'){
try {
debugger;
const remote = nodeRequire('electron').remote;
var version = remote.app.getVersion();
if(version != '6.0.1'){
win = remote.getCurrentWindow();
if(config.setting.fullScreen == 'Y'){
win.setFullScreen(true);
} else {
win.setMinimumSize(320, 568);
win.setSize(320, 568);
win.center();
win.setResizable(false);
win.setMaximizable(false);
isFull = true;
}
}
}catch(e){}
}
}
function init(){
var app = angular.module("update", ['pascalprecht.translate', 'ngMaterialLite', 'angularCSS']);
app.config(["$httpProvider", "$provide", "$translateProvider",
function ($httpProvider, $provide, $translateProvider) {
$translateProvider.useStaticFilesLoader({ prefix: 'module/system/localization/localization-', suffix: '.json' });
$translateProvider.preferredLanguage('zh_TW');
}
]);
app.value('config',{});
app.controller("update_controller", ["$scope", "$timeout", "$http", "$mdDialog", "config", "$translate", "$filter", function($scope, $timeout, $http, $mdDialog, config, $translate, $filter) {
var newAppVersion;
$scope.show_screen=false;
$scope.show_update=false;
$scope.mode = '';
$scope.isFull = isFull;
//20201023 雋辰,新增WS設定
$scope.showWS = false;
var showWSClickCount = 0;
$scope.init = function(){
//log.innerHTML = '...';
log = document.getElementById('update_log');
log.innerHTML = '...';
downloadConfig();
}
$scope.close = function(){
window.close();
}
$scope.loadServerList = function(){
var serverList = [];
if(config.serverList){
for(var env_name in config.serverList){
serverList.push({code:env_name, label:$filter('translate')('mms01_user_login.env.'+env_name), server:config.serverList[env_name]});
}
}
showSelect({
title : $filter('translate')('mms01_user_login.ServerList'),
label : 'label',
code : 'code',
selectCode : '',
list : serverList,
confirm : function(item, dialog){
dialog.hide();
config.setting.environment = $scope.environment = item.code;
config.server.name = item.server.name;
config.server.eainame = item.server.eainame;
//20220419 13871,增加sc設定
config.server.scname = item.server.scname;
if (typeof(Storage) !== "undefined") {
localStorage.setItem(config.appName + "_server", JSON.stringify(config.server));
localStorage.setItem(config.appName + "_setting", JSON.stringify(config.setting));
//localStorage.setItem(config.appName + "_lang", $scope.currentUse);
}
}
});
}
//20201023 雋辰,顯示/隱藏WS設定
$scope.showWSClick = function () {
showWSClickCount++;
if (showWSClickCount >= 5) {
showWSClickCount = 0;
$scope.showWS = !$scope.showWS;
}
}
function showSelect(options){
$mdDialog.dialog('JSplugins/angular-material-lite/template/radioList.tmp.html', function(dialog){
return {
title : options.title||$filter('translate')('common.msg.plz_select'),
label : options.label,
code : options.code,
order: options.order||options.label,
selectCode : options.selectCode,
back : function() {
this.hide();
},
itemList : options.list,
itemClick : function(item, event){
//$translate.use(item.code);
//$scope.currentUse = item.code;
if(options.confirm)
options.confirm(item, this);
//this.hide();
},
itemCancel:function(){
dialog.hide();
if(options.cancel)
options.cancel(this);
},
isCancel:options.cancel!=undefined
}
});
}
function downloadConfig(){
$http.post('config/config.json').then(function(res){
angular.merge(config, res.data);
if (typeof (Storage) !== "undefined") {
//20201023 雋辰,新增WS設定
angular.merge(config.serverList, JSON.parse(localStorage.getItem(config.appName + "_serverList")));
angular.merge(config.server, JSON.parse(localStorage.getItem(config.appName + "_server")));
angular.merge(config.setting, JSON.parse(localStorage.getItem(config.appName + "_setting")));
//config.server.name = 'mobilemiddleware';
//config.server.name = 'MES_Production_MESws_STD';
//config.server.eainame = 'MES_Production_MESws_EAI';
$scope.environment = config.setting.environment;
if(!config.setting.fullScreen){
config.setting.fullScreen = 'N';
}
//載入Server設定
config.server = angular.merge({}, config.serverList[config.setting.environment]);//取出預設的Server資訊
var LocalServerConfig = JSON.parse(localStorage.getItem(config.appName + '_server'));//取出本地端儲存的Server資訊
angular.merge(config.server, LocalServerConfig);
if(config.server.name==''){
config.server.name = 'MES_Production_MESws_STD';
}
if(config.server.eainame==''){
config.server.eainame = 'MES_Production_MESws_EAI';
}
parseParamsToConfig(config);
if(platform == 'electron')
{win.setFullScreen(false);}
else if(platform == 'nw')
{win.leaveFullscreen();}
var temp = config.server.ip.split('.');
if(temp.length == 4){
$scope.serverIp = temp;
} else {
$scope.serverIp = ["0", "0", "0", "0"];
}
$translate.use(config.setting.lang);
if(window.cordova){
config.appVersion = localStorage.getItem(config.appName + "_version");
}
$scope.config = config;
}
angular.element(document.querySelector('#update_controller')).css('display','block');
if(window.nodeRequire){
$scope.isElectron = true;
checkUpdate();
} else if (window.cordova){
try{
navigator.splashscreen.hide();
} catch(e){};
$timeout(function(){
checkUpdate();
});
} else {
changeMode('setting');
}
});
}
function checkUpdate(){
//20201125 雋辰,新增選擇DNS/IP
var ip = config.setting.DNSMode ? config.server.DNS : config.server.ip;
if(config.cache.offline){
reDirect('index.html');
} else if((!config.setting.DNSMode && config.server.ip != '0.0.0.0') ||
(config.setting.DNSMode && ip.length > 0)){
$scope.show_update=true;
log.innerHTML = $filter('translate')('update.msg.checking_update');//檢查更新中...
sendToMESSrv_plain({
uri: 'tcMES_LiveUpdate.clsLiveUpdate.LiveUpdate_PDA',
//uri: 'tcMES_LiveUpdate.clsLiveUpdate.LiveUpdate',
content : {
applicationId:config.applicationId
},
success : function(data){
data = JSON.parse(data);
if(data.Result != 'fail'){
//console.log(data.version);
newAppVersion = data.version;
servicePlatform = data.platform;
if(data.version == config.appVersion || data.version == '0.0.0.0' || data.version == ''){
$scope.show_update=true;
checkUpdateExist();
} else {
if(data.url.indexOf('http://')==-1){
data.url = 'http://'+config.server.ip+':'+config.server.port+"/"+data.url;
}
$scope.show_update=true;
downloadZip(data.url);
}
} else {
log.innerHTML = data.SysMsg;
$scope.show_update=false;
}
}
});
} else {
//一開始IP還未設定的時候
changeMode('setting');
}
}
//檢查是否已經更新過
function checkUpdateExist(){
if(window.resolveLocalFileSystemURL){
window.resolveLocalFileSystemURL(cordova.file.dataDirectory+'update', function(updateFolder){
reDirect(updateFolder.toURL() + '/index.html');
}, function(){
reDirect('index.html');
});
} else {
reDirect('index.html');
}
}
//download ZIP file
function downloadZip(url){
log.innerHTML = $filter('translate')('update.msg.update_download_start');//开始下载更新...
$scope.show_update=true;
try{
var zipDistUrl = cordova.file.dataDirectory;
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
//更新下載中
log.innerHTML = $filter('translate')('update.msg.update_downloading')+Math.floor(progressEvent.loaded / progressEvent.total * 100)+'%';
$scope.show_update=true;
}
};
ft.download(url, zipDistUrl+'update.zip',
function(r) {
log.innerHTML = $filter('translate')('update.msg.updating');//程式更新中...
$scope.show_update=true;
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)){
unZIPforIOS(zipDistUrl);
} else {
prepareUnZip(zipDistUrl);
}
}, function(error) {
log.innerHTML = $filter('translate')('update.msg.cant_download');//無法下載更新,請確認伺服器連線是否正常;
$scope.show_update=false;
changeMode('setting');
}
);
}catch(e){
if(window.nodeRequire){
var data = {
url : url,
method : 'GET',
type:"application/octet-stream",
responseType: 'arraybuffer'
},
request = nodeRequire('request'),
progress = nodeRequire('request-progress'),
fs = nodeRequire('fs'),
AppPath;
const Zip = nodeRequire('adm-zip-electron');
log.innerHTML = $filter('translate')('update.msg.updating');
$scope.show_update=true;
if(platform == 'electron'){
AppPath = nodeRequire('electron').remote.app.getAppPath()+'\\';
} else {
var nwDir = nodeRequire('path').dirname(process.execPath);
AppPath = nwDir+'\\package.nw\\';
}
var updateFile = AppPath + 'update.zip';
var tempFile = fs.createWriteStream(updateFile);
tempFile.on('finish', function(){
tempFile.close(function(){
try{
log.innerHTML = $filter('translate')('update.msg.updating');//程式更新中...
$scope.show_update=true;
var zip = new Zip(updateFile);
zip.extractAllTo(AppPath+'www\\', true);
clearUpdate(AppPath, 'update.zip', function(){
reDirect('index.html');
});
}catch(e){
log.innerHTML = $filter('translate')('update.msg.zip_cant_download')+'<br>'+e;//無法下載更新,更新用的檔案不存在,請確認伺服器連線資訊是否正確
$scope.show_update=false;
changeMode('setting');
}
});
});
var request = request(url, function(error, response, body){
if(error){
log.innerHTML = $filter('translate')('update.msg.zip_cant_download');//無法下載更新,更新用的檔案不存在,請確認伺服器連線資訊是否正確
$scope.show_update=false;
changeMode('setting');
} else {
log.innerHTML = $filter('translate')('update.msg.update_downloading') + '100%';
$scope.show_update=true;
}
});
request.pipe(tempFile);
progress(request, {
throttle: 200, // Throttle the progress event to 2000ms, defaults to 1000ms
// delay: 1000, // Only start to emit after 1000ms delay, defaults to 0ms
// lengthHeader: 'x-transfer-length' // Length header to use, defaults to content-length
})
.on('progress', function (state) {
//更新下載中
log.innerHTML = $filter('translate')('update.msg.update_downloading')+(Math.round(state.percent * 100))+'%';
$scope.show_update=true;
})
.on('error', function (err) {
log.innerHTML = $filter('translate')('update.msg.zip_cant_download');//無法下載更新,更新用的檔案不存在,請確認伺服器連線資訊是否正確
$scope.show_update=false;
changeMode('setting');
});
} else {
reDirect('index.html');
}
}
}
var g_zipDistUrl;
function prepareUnZip(zipDistUrl){
var srcUrl = cordova.file.applicationDirectory + 'www/';
g_zipDistUrl = zipDistUrl;
window.resolveLocalFileSystemURL(srcUrl,
function(directoryEntry){
window.resolveLocalFileSystemURL(zipDistUrl, function(dstDirectoryEntry){
dstDirectoryEntry.getDirectory('update', {create: true}, function(updateDirEntry){
log.innerHTML = $filter('translate')('update.msg.prepare_updat'); //正在準備更新程式...
$scope.show_update=true;
//get file cordova.js, cordova_plugins.js, plugins
directoryEntry.getFile('cordova.js', {}, function (fileEntry) {
//copy cordova.js
fileEntry.copyTo(updateDirEntry,'cordova.js', function(){
directoryEntry.getFile('cordova_plugins.js', {}, function (fileEntry) {
//copy cordova_plugins.js
fileEntry.copyTo(updateDirEntry,'cordova_plugins.js', function(){
directoryEntry.getDirectory('plugins', {}, function(pluginsDirEntry){
//copy plugins
pluginsDirEntry.copyTo(updateDirEntry,'plugins', function(){
directoryEntry.getDirectory('cordova-js-src', {}, function(pluginsDirEntry){
//copy cordova-js-src
pluginsDirEntry.copyTo(updateDirEntry,'cordova-js-src', function(){
directoryEntry.getDirectory('scripts', {}, function(pluginsDirEntry){
//copy scripts
pluginsDirEntry.copyTo(updateDirEntry,'scripts', function(){
unZIPforCordova(zipDistUrl);
}, copyfileError);
}, getDirectoryError);
}, copyfileError);
}, getDirectoryError);
}, copyfileError);
}, getDirectoryError);
}, copyfileError);
}, getDirectoryError);
}, copyfileError);
}, getDirectoryError);
}, getDirectoryError);
}, getDirectoryError);
}, getDirectoryError
);
}
function copyfileError(error){
if(error.code == 9 || error.code == 12){
unZIPforCordova(g_zipDistUrl);
} else {
log.innerHTML = $filter('translate')('update.msg.temp_file_cant_dele')+":"+error.code;//暫存檔案刪除失敗,請重新下載
$scope.show_update=false;
changeMode('setting');
}
}
function unZIPforCordova(zipDistUrl){
log.innerHTML = $filter('translate')('update.msg.updating');//程式更新中...
$scope.show_update=true;
var dstDir = zipDistUrl + 'update'
zip.unzip(zipDistUrl+'update.zip', dstDir,
function(result){
if(result==0){
clearUpdate(zipDistUrl, 'update.zip', function(){
//localStorage.setItem(config.appName + "_version", newAppVersion);
reDirect(zipDistUrl+'update/index.html');
});
} else {
log.innerHTML = $filter('translate')('update.msg.zip_server_connect');//'更新檔解析失敗,請重新下載';
$scope.show_update=false;
changeMode('setting');
}
},
function(progressEvent){
log.innerHTML = $filter('translate')('update.msg.updating') + Math.round((progressEvent.loaded / progressEvent.total) * 100)+'%';
$scope.show_update=true;
}
);
}
function unZIPforIOS(zipDistUrl){
var srcUrl = cordova.file.applicationDirectory + 'www/';
var dstDir = zipDistUrl + 'update'
window.resolveLocalFileSystemURL(
srcUrl,
function(directoryEntry){
window.resolveLocalFileSystemURL(zipDistUrl, function(dstDirectoryEntry){
log.innerHTML = $filter('translate')('update.msg.prepare_updat'); //正在準備更新程式...
$scope.show_update=true;
directoryEntry.copyTo(dstDirectoryEntry, 'update', function(){
zip.unzip(zipDistUrl+'update.zip', dstDir,
function(result){
if(result==0){
clearUpdate(zipDistUrl, 'update.zip', function(){
//localStorage.setItem(config.appName + "_version", newAppVersion);
reDirect(zipDistUrl+'update/index.html');
});
} else {
log.innerHTML = $filter('translate')('update.msg.zip_server_connect');//'更新檔解析失敗,請重新下載';
$scope.show_update=false;
changeMode('setting');
}
},
function(progressEvent){
log.innerHTML = $filter('translate')('update.msg.updating') + Math.round((progressEvent.loaded / progressEvent.total) * 100)+'%';
}
);
}, function(error){
if(error.code == 9 || error.code == 12){
log.innerHTML = $filter('translate')('update.msg.delete_temp_file');//正在刪除暫存檔案...
$scope.show_update=true;
resolveLocalFileSystemURL(dstDir, function(dstDirectory){
dstDirectory.removeRecursively(function(){
unZIPforCordova(zipDistUrl);
},function(error){
log.innerHTML = $filter('translate')('update.msg.temp_file_cant_dele');//暫存檔案刪除失敗,請重新下載
$scope.show_update=false;
changeMode('setting');
});
}, getDirectoryError);
} else {
log.innerHTML = $filter('translate')('update.msg.temp_file_cant_dele')+":"+error.code;//暫存檔案刪除失敗,請重新下載
$scope.show_update=false;
changeMode('setting');
}
});
}, getDirectoryError);
},
getDirectoryError
);
}
function getDirectoryError(error){
log.innerHTML = "ERROR"+":"+error.code;//暫存檔案刪除失敗,請重新下載
$scope.show_update=false;
changeMode('setting');
}
//delete update.zip file
function clearUpdate(url, fileName, feedback){
try{
resolveLocalFileSystemURL(url, function(dir) {
dir.getFile(fileName, {create:false}, function(fileEntry) {
fileEntry.remove(function(){
if(feedback)
feedback();
// The file has been removed succesfully
},function(error){
log.innerHTML = $filter('translate')('update.msg.temp_file_cant_dele');//暫存檔案刪除失敗
$scope.show_update=false;
if(feedback)
feedback();
},function(){
log.innerHTML = $filter('translate')('update.msg.temp_file_not_exist');//暫存檔案不存在
$scope.show_update=false;
if(feedback)
feedback();
});
});
});
} catch(e){
nodeRequire('fs').unlink(url+'\\'+fileName, function(error){
if(feedback)
feedback();
});
}
}
function changeMode(mode){
$timeout(function(){
$scope.mode = mode;
if(mode == 'setting'){
if(platform == 'electron'){
win.setSize(320, 568);
win.center();
} else if(platform == 'nw'){
win.resizeTo(320, 568);
}
} else{
if(platform == 'electron'){
win.setSize(320, 568);
win.center();
} else if(platform == 'nw'){
win.resizeTo(320, 568);
}
}
});
$timeout(function(){
$scope.show_screen=true;
},750);
}
$scope.reCheckUpdate = function(){
config.server.ip = combineIP($scope.serverIp);
config.server.name = config.serverList[config.setting.environment].name;
config.server.eainame = config.serverList[config.setting.environment].eainame;
//20220419 13871,增加sc設定
config.server.scname = config.serverList[config.setting.environment].scname;
localStorage.setItem(config.appName + "_serverList", JSON.stringify(config.serverList));
localStorage.setItem(config.appName + "_server", JSON.stringify(config.server));
changeMode('');
checkUpdate();
}
function combineIP(array){
var totalip;
array.forEach(function(ipstring){
if(!totalip)
totalip = ipstring;
else
totalip += "." +ipstring;
});
return totalip;
}
function reDirect(url, msg){
log.innerHTML = msg||$filter('translate')('update.msg.update_complete');//程式更新完成...
$scope.show_update=true;
//底層為Cordova 的狀態下一旦更新完成就把新的版本號寫入localStorage
if(window.cordova && newAppVersion != '0.0.0.0'){
localStorage.setItem(config.appName + "_version", newAppVersion);
}
localStorage.setItem(config.appName + "_servicePlatform", servicePlatform);
$timeout(function(){
if(platform == 'electron'){
createWindow(url);
} else if(platform == 'nw'){
createWindowNW(url);
} else {
document.location.href = url;
}
}, 100);
}
function createWindow (url) {
var BrowserWindow = nodeRequire('electron').remote.BrowserWindow;
var newWin = new BrowserWindow({
width: 320,
minWidth: 320,
height: 568,
minHeight: 568,
frame:false,
fullscreen: false,
fullscreenable: true,
titleBarStyle : 'customButtonsOnHover',
show: false
});
newWin.loadURL('file://'+__dirname+'/'+url);
newWin.on('closed', function(){
newWin = null;
});
newWin.once('ready-to-show', function(){
if(isDebug)
newWin.webContents.openDevTools();
newWin.show();
newWin.setFullScreen(config.setting.fullScreen == 'Y');
win.close();
});
}
function createWindowNW (url) {
var nw = nodeRequire('nw.gui'),
settings = {
position: "center",
min_width:320,
min_height:568,
width:320,
height:568,
resizable:true,
fullscreen:config.setting.fullScreen == 'N',
frame: false,
show: false,
icon:"icon/icon.png"
};
nw.Window.open('www/'+url, settings, function(new_win) {
if(isDebug)
new_win.showDevTools();
new_win.on('loaded', function(){
new_win.show();
win.close();
});
});
}
function prepareHeader(data){
var header = {};
//TODO
header.Method = data.uri;
header["mds.userid"] = '';
header["mds.password"] = '';
header["mds.environment"] = config.setting.environment;
header["mds.language_mode"] = $translate.use();
header["mds.computer_name"] = config.client.ip;
header["mds.sessionno"] = config.mdssessionno;
return header;
}
function prepareContent(data){
var content = {};
content.CompanyID = config.setting.companyId;
content.Equipment = '';
content = angular.merge(content, data.content);
return content;
}
function prepareMESHeader(data){
var header = {};
//TODO
header["method"] = data.uri;
header["userid"] = config.cache.account||'';
header["languagemode"] = $translate.use();
header["computername"] = config.client.ip;
header["sessionno"] = config.mdssessionno;
return header;
}
function sendToMESSrv_plain(sendData) {
//20201125 雋辰,新增選擇DNS/IP
var ip = config.setting.DNSMode ? config.server.DNS : config.server.ip;
var apiurl = config.server.name+'/wsInvoke.asmx/InvokeSrv_plainjson';
var liveupdate_url = 'http://'+ip+':'+config.server.port+'/'+apiurl;
var header = prepareMESHeader(sendData);
var data = {
url : liveupdate_url,
method : 'POST',
headers : {
'Content-Type': 'application/json;charset=UTF-8'
},
data : {
"uri":JSON.stringify(header),
"content":JSON.stringify(sendData.content)
}
};
if(config.server.timeout != 0)
data.timeout =config.server.timeout;
$http(data).success(function(data, status, headers, config) {
try{
var contentData = JSON.parse(data.d);
if(contentData.Code === '0' || contentData.Code === null || contentData.code === '0' || contentData.code === null){
if(sendData.success)
sendData.success(contentData.ResultJson);
} else {
if(sendData.error){
sendData.error(contentData);
} else {
log.innerHTML = contentData.exception;
$scope.show_update=false;
changeMode('setting');
}
}
}catch(e){
log.innerHTML = e
$scope.show_update=false;
changeMode('setting');
}
}).error(function(a,b,c,d){
log.innerHTML = $filter('translate')('update.msg.cant_get_verInfo');//無法取得版本資訊
$scope.show_update=false;
changeMode('setting');
});
}
function send(sendData){
var data = {
url : 'http://'+config.server.ip+':'+config.server.port+'/mobilemiddleware/api/v1/transaction/json',
method : 'POST',
headers : {
'Content-Type': 'application/json;charset=UTF-8'
},
data : {
"applicationId":config.applicationId,
"uri": sendData.uri,
"headers":prepareHeader(sendData),
"cookies":[],
'content':JSON.stringify(prepareContent(sendData))
}
};
if(config.server.timeout != 0)
data.timeout =config.server.timeout;
$http(data).success(function(data, status, headers, config) {
try{
var contentData = JSON.parse(data.content);
if(contentData.IsSuccess){
if(sendData.success)
sendData.success(contentData.Result);
} else {
if(sendData.error){
sendData.error(contentData);
} else {
log.innerHTML = contentData.SysException;
changeMode('setting');
}
}
}catch(e){
log.innerHTML = e
changeMode('setting');
}
}).error(function(a,b,c,d){
log.innerHTML = $filter('translate')('update.msg.cant_get_verInfo');//無法取得版本資訊
changeMode('setting');
});
}
}]);
};