1 <div class=
"box box-primary" id=
"control">
2 <div class=
"box-header">
3 <div class=
"col-sm-9" style=
"padding-top:8px;">
4 <i class=
"fa fa-clone"> </i>
5 <h1 class=
"box-title" style=
"font-weight:bold;" id=
"id_h1_page_title">菜单别名插件
</h1>
7 <div class=
"col-sm-1" style=
"padding-top:2px;">
8 <button id=
"id_btn_reset" class=
"btn btn-sm btn-danger btn-del"><i class=
"fa fa-trash"></i><span id=
"id_btn_span_reset">Reset
</span></button>
10 <div class=
"col-sm-2" style=
"font-size:16px;padding-top:8px;">
11 <a id=
"id_a_official_doc" target=
"_blank" href=
"https://www.ventoy.net/en/plugin_menualias.html"><span class=
"fa fa-link"></span><span id=
"id_span_official_doc">官网文档
</span></a>
16 <div class=
"box-body">
17 <div class=
"nav-tabs-custom">
18 <ul class=
"nav nav-tabs" id=
"id_tab_menu_alias">
19 <li class=
""><a href=
"#tab_0" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold" >menu_alias
</a></li>
20 <li class=
""><a href=
"#tab_1" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_alias_legacy
</a></li>
21 <li class=
""><a href=
"#tab_2" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_alias_uefi
</a></li>
22 <li class=
""><a href=
"#tab_3" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_alias_ia32
</a></li>
23 <li class=
""><a href=
"#tab_4" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_alias_aa64
</a></li>
24 <li class=
""><a href=
"#tab_5" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_alias_mips
</a></li>
28 <table id=
"id_alisa_tbl" class=
"table table-bordered">
31 <th style=
"width: 2%;">#
</th>
32 <th id=
"id_th_alias_type" style=
"width: 5%;"></th>
33 <th id=
"id_th_alias_path" style=
"width: 35%;"></th>
34 <th id=
"id_th_status" style=
"width: 5%;"></th>
35 <th id=
"id_th_alias_alias" style=
"width: 40%;"></th>
36 <th id=
"id_th_operation" style=
"width: 5%;"></th>
44 <script type=
"text/javascript">
46 function VtoyPageLanguageChange(newlang) {
47 VtoyCommonChangeLanguage(newlang);
48 $('h1[id=id_h1_page_title]').text(g_vtoy_cur_language.STR_PLUG_ALIAS);
50 $("span[id=id_span_file_exist]").each(function(){
51 $(this).text(g_vtoy_cur_language.STR_FILE_EXIST);
53 $("span[id=id_span_file_nonexist]").each(function(){
54 $(this).text(g_vtoy_cur_language.STR_FILE_NONEXIST);
56 $("span[id=id_span_file_fuzzy]").each(function(){
57 $(this).text(g_vtoy_cur_language.STR_FILE_FUZZY);
60 $("span[id=id_span_dir_exist]").each(function(){
61 $(this).text(g_vtoy_cur_language.STR_DIR_EXIST);
64 $("span[id=id_span_dir_nonexist]").each(function(){
65 $(this).text(g_vtoy_cur_language.STR_DIR_NONEXIST);
68 if (newlang === 'en') {
69 $('#id_th_alias_path').text('Absolute Path');
70 $('#id_th_alias_alias').text('Alias');
71 $('#id_th_alias_type').text('Type');
73 $('#id_th_alias_path').text('绝对路径');
74 $('#id_th_alias_alias').text('别名');
75 $('#id_th_alias_type').text('类型');
80 function FillAliasTable(data) {
81 var addbtn = ventoy_get_xslg_addbtn('AliasAddBtn');
82 var delbtn = ventoy_get_xslg_delbtn('AliasDelBtn');
84 var td1, td2, td3, td4, td5, td6;
85 var $tbl = $("#id_alisa_tbl tbody");
88 for (var i =
0; i < data.length; i++) {
90 td1 = '
<td>' + (i +
1) + '
</td>';
91 td2 = (data[i].type ===
0) ? '
<td>image
</td>' : '
<td>dir
</td>';
92 td3 = '
<td>' + data[i].path + '
</td>';
93 td4 = '
<td>' + ventoy_get_status_line(data[i].type, data[i].valid) + '
</td>';
94 td5 = '
<td>' + data[i].alias + '
</td>';
95 td6 = '
<td>' + delbtn + '
</td>';
97 $tr = $('
<tr>' + td1 + td2 + td3 + td4 + td5 + td6 + '
</tr>');
99 $tr.data('path', data[i].path);
100 $tr.data('index', i);
104 $tbl.append('
<tr><td></td><td></td><td></td><td></td><td></td><td>' + addbtn + '
</td></tr>');
107 function VtoyFillCurrentPageItem(data) {
108 FillAliasTable(data);
112 function OnClickMultiModeTab() {
113 var href = $(this).attr('href');
114 var index = parseInt(href.substr(
5,
1));
116 if (index <
0 || index
>= g_vtoy_data_default_index || current_tab_index === index) {
120 current_tab_index = index;
121 VtoyFillCurrentPageItem(m_data_alias[index]);
126 var current_tab_index =
0;
127 callVtoySync({method : 'get_alias'}, function(data) {
132 function AddAliasEntry(root, type, valid, extra) {
133 var list = m_data_alias[current_tab_index];
135 "path": root.substr(g_current_dir.length),
141 for (var i =
0; i < list.length; i++) {
142 if (list[i].path === data.path) {
143 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
149 method : 'alias_add',
150 index: current_tab_index,
155 if (e.result === 'success') {
157 FillAliasTable(list);
158 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
159 } else if (e.result === 'duplicate') {
160 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
165 function OnAddImageAlias(root, valid, extra) {
166 AddAliasEntry(root,
0, valid, extra);
169 function OnAddDirAlias(root, extra) {
170 AddAliasEntry(root,
1,
1, extra);
173 function OnAddAliasBtnClick(sel) {
175 var tip1 = (g_current_os === 'windows') ? '\\ISO\\Windows11.iso' : "/ISO/Ubuntu-
20.04-desktop-amd64.iso";
176 var tip2 = (g_current_os === 'windows') ? '\\ISO\\Windows**.iso' : "/ISO/Ubuntu-*****-desktop-amd64.iso";
178 "title": g_vtoy_cur_language.STR_SET_ALIAS,
180 "tip1": g_current_dir + tip1,
181 "tip2": g_current_dir + tip2,
184 "extra_title": g_vtoy_cur_language.STR_ALIAS
186 VtoySelectFilePath(OnAddImageAlias, para);
188 var tip = (g_current_os === 'windows') ? '\\ISO\\Windows' : "/ISO/Linux";
190 "title": g_vtoy_cur_language.STR_SET_ALIAS,
191 "tip": g_current_dir + tip,
194 "extra_title": g_vtoy_cur_language.STR_ALIAS
196 VtoySelectDirPath(OnAddDirAlias, para);
200 $("#id_alisa_tbl").on('click', '.AliasAddBtn', function() {
204 "tip": g_vtoy_cur_language.STR_SET_ALIAS_FOR_FILE
208 "tip": g_vtoy_cur_language.STR_SET_ALIAS_FOR_DIR
212 VtoySelectType(OnAddAliasBtnClick, para);
215 $("#id_alisa_tbl").on('click', '.AliasDelBtn', function() {
216 var $tr = $(this).closest('tr');
217 var path = $tr.data('path');
218 var index = $tr.data('index');
221 method : 'alias_del',
222 index: current_tab_index,
225 m_data_alias[current_tab_index].splice(index,
1);
226 FillAliasTable(m_data_alias[current_tab_index]);
227 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
234 $('#id_tab_menu_alias a[
href="#tab_0"]').click(OnClickMultiModeTab);
235 $('#id_tab_menu_alias a[
href="#tab_1"]').click(OnClickMultiModeTab);
236 $('#id_tab_menu_alias a[
href="#tab_2"]').click(OnClickMultiModeTab);
237 $('#id_tab_menu_alias a[
href="#tab_3"]').click(OnClickMultiModeTab);
238 $('#id_tab_menu_alias a[
href="#tab_4"]').click(OnClickMultiModeTab);
239 $('#id_tab_menu_alias a[
href="#tab_5"]').click(OnClickMultiModeTab);
241 function UpdateTabTitleIcon(data) {
242 CommonUpdateTabTitleIcon(data.exist_menu_alias, '#id_tab_menu_alias a[
href="#tab_', 'menu_alias');
244 $('#id_btn_reset').click(function() {
245 Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'menu_alias')}).on(function(e) {
248 method : 'alias_del',
249 index: current_tab_index,
255 m_data_alias[current_tab_index].length =
0;
256 VtoyFillCurrentPageItem(m_data_alias[g_vtoy_data_default_index]);
257 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
262 $('#id_tab_menu_alias a[
href="#tab_0"]').tab('show');
263 VtoyFillCurrentPageItem(m_data_alias[
0]);
264 VtoyPageLanguageChange(g_current_language);