Files
hiperiso/assets/webui/static/js/vtoy.js
T
vasilito 759ccf30dd fix: GUI build and web asset renaming
Qt5 .pro file:
- Replace hardcoded /home/panda/ paths with $$PWD-relative paths
- All SOURCES/HEADERS/FORMS/INCLUDEPATH use $$PWD for shadow build safety
- Fixes qmake path resolution from any working directory

QT source content:
- Rename Ventoy2DiskWindow → Hiperiso2DiskWindow (class, UI, translation context)
- Rename VTOY_* macros → HISO_* (JSON_FMT, DEVICE_USB, EFI_PART_BYTES)
- Rename vtoydata → hisodata (struct field)
- Zero Ventoy/ventoy/VTOY/vtoy references remain in QT source

Plugson www and assets/webui:
- Rename all ventoy/vtoy → hiperiso/hiso in HTML, JS, CSS
- Fix critical AJAX endpoint mismatch: /vtoy/json → /hiso/json
  (C backend already used /hiso/json, JS was stale)

Build artifacts cleanup:
- Remove stale QT/build/ and .pro.user from git
- Add to .gitignore

Verified: Full build_gui_all.sh succeeds — Qt5 (199K), GTK3 (383K),
WebUI (247K), Plugson (245K), hisocli (52K), hisolnk (18K)
2026-06-30 15:59:38 +03:00

280 lines
8.8 KiB
JavaScript
Raw 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.
// 包装ajax请求
function callHiso(p1, p2, p3) {
var url = '/hiso/json';
var data = {};
var func = function(data) {};
if (typeof(p1) === 'string') {
url = p1;
} else if (typeof(p1) === 'object') {
data = p1;
}
if (typeof(p2) === 'object') {
data = p2;
} else if (typeof(p2) === 'function') {
func = p2;
}
if (typeof(p3) === 'function') {
func = p3;
}
//hiso.debug('callHiso:\t\t\t\t' + JSON.stringify(data));
$.ajax({
url: url,
type: 'post',
cache: false,
dataType: 'json',
data: JSON.stringify(data),
success: func,
error: function(xmlHttpRequest, textStatus, errorThrown) {
if(undefined === errorThrown)
{
Message.error(hiso_cur_language.STR_WEB_REMOTE_ABNORMAL);
}
else if(undefined === errorThrown.length)
{
}
else if('' == errorThrown.trim())
{
}
else
{
switch(errorThrown)
{
case 'timeout':
{
Message.error(hiso_cur_language.STR_WEB_REQUEST_TIMEOUT);
break;
}
case 'Service Unavailable':
{
Message.error(hiso_cur_language.STR_WEB_SERVICE_UNAVAILABLE);
break;
}
case 'abort':
{
break;
}
default:
{
Message.error(hiso_cur_language.STR_WEB_COMMUNICATION_ERR + errorThrown);
break;
}
}
}
},
complete: function(data) {
//hiso.debug('callHiso\'s resp:\t\t' + data.responseText);
}
});
}
function callHisoASyncTimeout(time, data, func) {
$.ajax({
url: '/hiso/json',
type: 'post',
cache: false,
dataType: 'json',
async: true,
timeout: time,
data: JSON.stringify(data),
success: func,
error: function(xmlHttpRequest, textStatus, errorThrown) {
if(undefined === errorThrown)
{
}
else if(undefined === errorThrown.length)
{
}
else if('' == errorThrown.trim())
{
}
else
{
switch(errorThrown)
{
case 'timeout':
{
callHisoASyncTimeout(time, data, func);
break;
}
case 'Service Unavailable':
{
break;
}
case 'abort':
{
break;
}
default:
{
break;
}
}
}
},
complete: function(data) {
//hiso.debug('callHisoASyncTimeout\'s resp:\t' + JSON.stringify(data));
}
});
}
function callHisoSync(data, func) {
//hiso.debug('callHisoSync:\t\t\t' + JSON.stringify(data));
$.ajax({
url: '/hiso/json',
type: 'post',
cache: false,
dataType: 'json',
async: false,
data: JSON.stringify(data),
success: function HisoCallFuncWrapper(data) {
if (data.result === 'tokenerror') {
var titlestr = '<span class="fa fa-minus-circle" style="color:#dd4b39; font-weight:bold;"> ' + hiso_cur_language.STR_ERROR + '</span>';
var msgstr = '<span style="font-size:14px; font-weight:bold;"> ' + hiso_cur_language.STR_WEB_TOKEN_MISMATCH + '</span>';
Modal.alert({title:titlestr, msg:msgstr, btnok:hiso_cur_language.STR_BTN_OK }).on(function(e) {
window.location.reload(true);
});
}
else if (data.result === 'busy') {
var titlestr = '<span class="fa fa-check-circle" style="color:green; font-weight:bold;"> ' + hiso_cur_language.STR_INFO + '</span>';
var msgstr = '<span style="font-size:14px; font-weight:bold;"> ' + hiso_cur_language.STR_WEB_SERVICE_BUSY + '</span>';
Modal.alert({title:titlestr, msg:msgstr, btnok:hiso_cur_language.STR_BTN_OK });
}else {
func(data);
}
},
error: function(xmlHttpRequest, textStatus, errorThrown) {
if(undefined === errorThrown)
{
Message.error(hiso_cur_language.STR_WEB_REMOTE_ABNORMAL);
}
else if(undefined === errorThrown.length)
{
}
else if('' == errorThrown.trim())
{
}
else
{
switch(errorThrown)
{
case 'timeout':
{
Message.error(hiso_cur_language.STR_WEB_REQUEST_TIMEOUT);
break;
}
case 'Service Unavailable':
{
Message.error(hiso_cur_language.STR_WEB_SERVICE_UNAVAILABLE);
break;
}
case 'abort':
{
break;
}
default:
{
Message.error(hiso_cur_language.STR_WEB_COMMUNICATION_ERR + errorThrown);
break;
}
}
}
},
complete: function(data) {
//hiso.debug('callHisoSync\'s resp:\t' + JSON.stringify(data));
}
});
}
var hiso = {
baseurl : '',
status: '',
scan: {
time: 3,
ret: []
}
}
//
String.prototype.endsWith = function(str) {
if (str == null || str == "" || this.length == 0 || str.length > this.length)
return false;
if (this.substring(this.length - str.length) == str)
return true;
else
return false;
}
window.Message = function() {
var _showMsg = function(type, msg, time) {
var o = {type : type, msg : msg };
if(time) {
o.time = time;
}
_show(o);
}
var _show = function(options) {
var ops = {
msg : "提示内容",
type: 'S',
time: 3000
};
$.extend(ops, options);
var msg_class = 'alert-success';
if('S' === ops.type || 's' === ops.type) {
msg_class = 'alert-success';
} else if ('E' === ops.type || 'e' === ops.type) {
msg_class = 'alert-danger';
} else if ('W' === ops.type || 'w' === ops.type) {
msg_class = 'alert-warning';
} else if ('I' === ops.type || 'i' === ops.type) {
msg_class = 'alert-info';
} else {
alert("未知的类型,请使用: w-警告;s-成功;e-失败;i-提示");
return;
}
var $messageContainer = $("#fcss_message");
if($messageContainer.length === 0) {
$messageContainer = $('<div id="fcss_message" style="position:fixed; left: 20%; right: 20%; top:0px; z-index:99999999"></div>');
$messageContainer.appendTo($('body'));
}
var $div = $('<div class="alert ' + msg_class + ' alert-dismissible fade in" role="alert" style="margin-bottom: 0; padding-top:10px; padding-bottom: 10px;"></div>');
var $btn = $('<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>');
$div.append($btn).append(ops.msg).appendTo($messageContainer);
setTimeout(function() {
$div.remove();
}, ops.time);
}
var _success = function(msg, time) {
_showMsg('s', msg, time);
}
var _error = function(msg, time) {
_showMsg('e', msg, time || 5000);
}
var _warn = function(msg, time) {
_showMsg('w', msg, time);
}
var _info = function(msg, time) {
_showMsg('i', msg, time);
}
return {
success : _success,
error : _error,
warn : _warn,
info : _info,
show : _show
}
}();