]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - Plugson/www/static/js/vtoy.js
1.1.07 release
[Ventoy.git] / Plugson / www / static / js / vtoy.js
index 21f71b43c4ef32745e865fe2cf509fc722477872..ad82628b6931fb3dd5df47efc3ad9bc7d32db9a0 100644 (file)
@@ -1,7 +1,23 @@
 \r
 \r
+function VtoyUTF16HexToAscii(hex) {\r
+    var str = "";        \r
+    for (var i = 0; i < hex.length; i += 4) {\r
+        str += String.fromCharCode(parseInt(hex.substring(i, i + 4), 16));\r
+    }\r
+    \r
+    return str;\r
+}\r
+\r
 function ventoy_replace_slash(str) {\r
     var str1 = str.replace(/\\/g, '/');\r
     var str2 = str1.replace(/\/\//g, '/');\r
 function ventoy_replace_slash(str) {\r
     var str1 = str.replace(/\\/g, '/');\r
     var str2 = str1.replace(/\/\//g, '/');\r
+    \r
+    if (str2 && str2.length > 0) {\r
+        if (str2.substr(-1) === "/") {\r
+            return str2.substr(0, str2.length - 1);\r
+        }\r
+    }\r
+    \r
     return str2;\r
 }\r
 \r
     return str2;\r
 }\r
 \r
@@ -17,6 +33,8 @@ function ventoy_get_ulen(str) {
 \r
 \r
 function ventoy_common_check_path(path) {\r
 \r
 \r
 function ventoy_common_check_path(path) {\r
+    var curdir\r
+    \r
     if (path.indexOf('//') >= 0) {\r
         return false;\r
     }\r
     if (path.indexOf('//') >= 0) {\r
         return false;\r
     }\r
@@ -25,7 +43,12 @@ function ventoy_common_check_path(path) {
         return false;\r
     }\r
 \r
         return false;\r
     }\r
 \r
-    if (path.substr(0, g_current_dir.length) != g_current_dir) {\r
+    curdir = path.substr(0, g_current_dir.length);    \r
+    if (curdir.match("^[a-z]:$")) {\r
+        curdir = curdir.toUpperCase();\r
+    }\r
+    \r
+    if (curdir != g_current_dir) {\r
         return false;\r
     }\r
 \r
         return false;\r
     }\r
 \r
@@ -281,71 +304,6 @@ String.prototype.endsWith = function(str) {
         return false;\r
 }\r
 \r
         return false;\r
 }\r
 \r
-window.Message = function() {\r
-    var _showMsg = function(type, msg, time) {\r
-        var o = {type : type, msg : msg };\r
-        if(time) {\r
-            o.time = time;\r
-        }\r
-        _show(o);\r
-    }\r
-    \r
-    var _show = function(options) {\r
-        var ops = {\r
-            msg : "提示内容",\r
-            type: 'S',\r
-            time: 3000\r
-        };\r
-        $.extend(ops, options);\r
-\r
-        var msg_class = 'alert-success';\r
-        if('S' === ops.type || 's' === ops.type) {\r
-            msg_class = 'alert-success';\r
-        } else if ('E' === ops.type || 'e' === ops.type) {\r
-            msg_class = 'alert-danger';\r
-        } else if ('W' === ops.type || 'w' === ops.type) {\r
-            msg_class = 'alert-warning';\r
-        } else if ('I' === ops.type || 'i' === ops.type) {\r
-            msg_class = 'alert-info';\r
-        } else {\r
-            alert("未知的类型,请使用: w-警告;s-成功;e-失败;i-提示");\r
-            return;\r
-        }\r
-        var $messageContainer = $("#fcss_message");\r
-        if($messageContainer.length === 0) {\r
-            $messageContainer = $('<div id="fcss_message" style="position:fixed; left: 20%; right: 20%; top:0px; z-index:99999999"></div>');\r
-            $messageContainer.appendTo($('body'));\r
-        }\r
-        var $div = $('<div class="alert ' + msg_class + ' alert-dismissible fade in" role="alert" style="margin-bottom: 0; padding-top:10px; padding-bottom: 10px;"></div>');\r
-        var $btn = $('<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>');\r
-        $div.append($btn).append(ops.msg).appendTo($messageContainer);\r
-        setTimeout(function() {\r
-            $div.remove();\r
-        }, ops.time);\r
-    }\r
-    \r
-    var _success = function(msg, time) {\r
-        _showMsg('s', msg, time);\r
-    }\r
-    var _error = function(msg, time) {        \r
-        _showMsg('e', msg, time || 5000);\r
-    }\r
-    var _warn = function(msg, time) {\r
-        _showMsg('w', msg, time);\r
-    }\r
-    var _info = function(msg, time) {\r
-        _showMsg('i', msg, time);\r
-    }\r
-    \r
-    return {\r
-        success : _success,\r
-        error  : _error,\r
-        warn   : _warn,\r
-        info    : _info,\r
-        show   : _show\r
-    }\r
-}();\r
-\r
 \r
 var g_vtoy_cur_language_en = \r
 {\r
 \r
 var g_vtoy_cur_language_en = \r
 {\r
@@ -369,6 +327,7 @@ var g_vtoy_cur_language_en =
     "STR_OPT_SETTING": "Option Setting",\r
     "STR_OPT_DESC": "Option Description",\r
     "STR_EDIT": "Edit",\r
     "STR_OPT_SETTING": "Option Setting",\r
     "STR_OPT_DESC": "Option Description",\r
     "STR_EDIT": "Edit",\r
+    "STR_RESET": "Reset",\r
     "STR_FILE": "File",\r
     "STR_DIR": "Dir",\r
     "STR_SAVE_TIP": "Data in current page has been modified. Do you want to save it?",\r
     "STR_FILE": "File",\r
     "STR_DIR": "Dir",\r
     "STR_SAVE_TIP": "Data in current page has been modified. Do you want to save it?",\r
@@ -480,6 +439,11 @@ var g_vtoy_cur_language_en =
     "STR_SECURE_BOOT_DISABLE": "Disable",\r
     "STR_SYNTAX_ERROR_TIP": "Syntax error detected in ventoy.json, so the configuration is not loaded!",\r
     "STR_INVALID_CONFIG_TIP": "Invalid configuration detected in ventoy.json, so the configuration is not loaded!",\r
     "STR_SECURE_BOOT_DISABLE": "Disable",\r
     "STR_SYNTAX_ERROR_TIP": "Syntax error detected in ventoy.json, so the configuration is not loaded!",\r
     "STR_INVALID_CONFIG_TIP": "Invalid configuration detected in ventoy.json, so the configuration is not loaded!",\r
+    "STR_CONFIG_SAVE_ERROR_TIP": "Failed to write ventoy.json file. Check VentoyPlugson.log for more details!",\r
+\r
+    "STR_JSON_PREVIEW": "JSON Preview",\r
+    "STR_JSON_COPY_SUCCESS": "JSON Copy Success",\r
+    "STR_JSON_COPY_FAILED": "JSON Copy Failed",\r
 \r
     "STR_XXX": "xxx"\r
 };\r
 \r
     "STR_XXX": "xxx"\r
 };\r
@@ -506,6 +470,7 @@ var g_vtoy_cur_language_cn =
     "STR_OPT_SETTING": "选项设置",\r
     "STR_OPT_DESC": "选项说明",\r
     "STR_EDIT": "设置",\r
     "STR_OPT_SETTING": "选项设置",\r
     "STR_OPT_DESC": "选项说明",\r
     "STR_EDIT": "设置",\r
+    "STR_RESET": "重置",\r
     "STR_FILE": "文件",\r
     "STR_DIR": "目录",\r
     "STR_SAVE_TIP": "当前页面数据已经修改,是否保存?",\r
     "STR_FILE": "文件",\r
     "STR_DIR": "目录",\r
     "STR_SAVE_TIP": "当前页面数据已经修改,是否保存?",\r
@@ -615,8 +580,11 @@ var g_vtoy_cur_language_cn =
     "STR_SECURE_BOOT_DISABLE": "未开启",\r
     "STR_SYNTAX_ERROR_TIP": "ventoy.json 文件中存在语法错误,配置未加载!",\r
     "STR_INVALID_CONFIG_TIP": "ventoy.json 文件中存在错误配置,配置未加载!",\r
     "STR_SECURE_BOOT_DISABLE": "未开启",\r
     "STR_SYNTAX_ERROR_TIP": "ventoy.json 文件中存在语法错误,配置未加载!",\r
     "STR_INVALID_CONFIG_TIP": "ventoy.json 文件中存在错误配置,配置未加载!",\r
+    "STR_CONFIG_SAVE_ERROR_TIP": "ventoy.json 文件写入失败,详细信息请参考 VentoyPlugson.log 文件!",\r
 \r
 \r
-\r
+    "STR_JSON_PREVIEW": "JSON 预览",\r
+    "STR_JSON_COPY_SUCCESS": "JSON 内容复制成功",\r
+    "STR_JSON_COPY_FAILED": "JSON 内容复制失败",\r
 \r
     "STR_XXX": "xxx"\r
 };\r
 \r
     "STR_XXX": "xxx"\r
 };\r
@@ -627,12 +595,45 @@ var g_current_language = 'cn';
 var g_vtoy_cur_language = g_vtoy_cur_language_cn;\r
 var g_vtoy_data_default_index = 6;\r
 \r
 var g_vtoy_cur_language = g_vtoy_cur_language_cn;\r
 var g_vtoy_data_default_index = 6;\r
 \r
+var g_bios_postfix = [ "", "_legacy", "_uefi", "_ia32", "_aa64", "_mips" ];\r
+var g_del_all_path = '4119ae33-98ea-448e-b9c0-569aafcf1fb4';\r
 var g_file_with_extra = false;\r
 var g_dir_with_extra = false;\r
 var g_file_fuzzy_match = 0;\r
 var g_file_modal_callback;\r
 var g_dir_modal_callback;\r
 \r
 var g_file_with_extra = false;\r
 var g_dir_with_extra = false;\r
 var g_file_fuzzy_match = 0;\r
 var g_file_modal_callback;\r
 var g_dir_modal_callback;\r
 \r
+function GetResetTabConfigTipMsg(index, name) {\r
+    var msgstr;\r
+    \r
+    if (g_current_language === 'en') {\r
+        msgstr = 'Are you sure to reset all the configurations on the <code>' + name + g_bios_postfix[index] + '</code> tab ?';\r
+    } else {\r
+        msgstr = '确认要重置 <code>' + name + g_bios_postfix[index] + '</code> 标签页下的所有配置?';\r
+    }\r
+    \r
+    return msgstr;\r
+}\r
+\r
+function CommonUpdateTabTitleIcon(exists, id, name) {\r
+    var exspan = " <span id='tab_0_icon' class='fa fa-circle' style='color:red;'></span>";\r
+    for (var i = 0; i < g_vtoy_data_default_index; i++) {\r
+        var fid = id + i + '"]';\r
+        var oldhtml = $(fid).html();\r
+        var newhtml;\r
+\r
+        if (exists[i]) {\r
+            newhtml = name + g_bios_postfix[i] + exspan;\r
+        } else {\r
+            newhtml = name + g_bios_postfix[i];\r
+        }\r
+        \r
+        if (newhtml != oldhtml) {\r
+            $(fid).html(newhtml);\r
+        }\r
+    }\r
+}\r
+\r
 function ventoy_file_submit(form, extra) {\r
     var filepath = $("#FilePath").val();\r
     var fileextra = $("#FileExtra").val();\r
 function ventoy_file_submit(form, extra) {\r
     var filepath = $("#FilePath").val();\r
     var fileextra = $("#FileExtra").val();\r
@@ -912,6 +913,8 @@ function VtoyCommonChangeLanguage(newlang) {
             $(this).text(" Plugin Official Document");\r
         });\r
         \r
             $(this).text(" Plugin Official Document");\r
         });\r
         \r
+        $('#id_span_copy').text("Copy");\r
+        $('#id_span_preview').text("Preview");\r
         $('#id_span_language').text("中文");\r
         \r
         $("tr[id=tr_title_desc_cn]").each(function(){\r
         $('#id_span_language').text("中文");\r
         \r
         $("tr[id=tr_title_desc_cn]").each(function(){\r
@@ -958,6 +961,8 @@ function VtoyCommonChangeLanguage(newlang) {
             $(this).text(" 插件官网文档");\r
         });\r
         \r
             $(this).text(" 插件官网文档");\r
         });\r
         \r
+        $('#id_span_copy').text("复制");\r
+        $('#id_span_preview').text("预览");\r
         $('#id_span_language').text("English");\r
         \r
         $("tr[id=tr_title_desc_cn]").each(function(){\r
         $('#id_span_language').text("English");\r
         \r
         $("tr[id=tr_title_desc_cn]").each(function(){\r
@@ -994,7 +999,10 @@ function VtoyCommonChangeLanguage(newlang) {
     $('#id_span_save').text(g_vtoy_cur_language.STR_SAVE);\r
     $('#id_span_reset').text(g_vtoy_cur_language.STR_RESET);\r
     $('#id_span_donation').text(g_vtoy_cur_language.STR_PLUG_DONATION);\r
     $('#id_span_save').text(g_vtoy_cur_language.STR_SAVE);\r
     $('#id_span_reset').text(g_vtoy_cur_language.STR_RESET);\r
     $('#id_span_donation').text(g_vtoy_cur_language.STR_PLUG_DONATION);\r
-\r
+    \r
+    $('span[id=id_btn_span_reset]').each(function(){\r
+        $(this).text(' ' + g_vtoy_cur_language.STR_RESET);\r
+    });\r
     $("span[id=id_span_btn_add]").each(function(){\r
         $(this).text(g_vtoy_cur_language.STR_ADD);\r
     });\r
     $("span[id=id_span_btn_add]").each(function(){\r
         $(this).text(g_vtoy_cur_language.STR_ADD);\r
     });\r