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-list-ul"> </i>
5 <h1 class=
"box-title" style=
"font-weight:bold;" id=
"id_h1_page_title">xx
</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_menuclass.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_class">
19 <li class=
""><a href=
"#tab_0" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold" >menu_class
</a></li>
20 <li class=
""><a href=
"#tab_1" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_class_legacy
</a></li>
21 <li class=
""><a href=
"#tab_2" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_class_uefi
</a></li>
22 <li class=
""><a href=
"#tab_3" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_class_ia32
</a></li>
23 <li class=
""><a href=
"#tab_4" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_class_aa64
</a></li>
24 <li class=
""><a href=
"#tab_5" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">menu_class_mips
</a></li>
28 <table id=
"id_class_tbl" class=
"table table-bordered">
31 <th style=
"width: 2%;">#
</th>
32 <th id=
"id_th_class_type" style=
"width: 5%;"></th>
33 <th id=
"id_th_class_path" style=
"width: 35%;"></th>
34 <th id=
"id_th_status" style=
"width: 5%;"></th>
35 <th id=
"id_th_class_class" 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_CLASS);
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_class_path').text('Key/Absolute Path');
70 $('#id_th_class_class').text('Menu Class');
71 $('#id_th_class_type').text('Type');
73 $('#id_th_class_path').text('关键字/绝对路径');
74 $('#id_th_class_class').text('菜单类型');
75 $('#id_th_class_type').text('类型');
80 function FillClassTable(data) {
82 var direxist = ventoy_get_status_line(
1,
1);
83 var dirnonexist = ventoy_get_status_line(
1,
0);
85 var addbtn = ventoy_get_xslg_addbtn('ClassAddBtn');
86 var delbtn = ventoy_get_xslg_delbtn('ClassDelBtn');
88 var td1, td2, td3, td4, td5, td6;
89 var $tbl = $("#id_class_tbl tbody");
92 for (var i =
0; i < data.length; i++) {
94 td1 = '
<td>' + (i +
1) + '
</td>';
96 td3 = '
<td>' + data[i].path + '
</td>';
97 if (data[i].type ===
0) {
101 if (data[i].type ===
1) {
102 td2 = '
<td>dir
</td>';
104 td2 = '
<td>parent
</td>';
107 if (data[i].valid ===
0) {
108 td4 = '
<td>' + dirnonexist + '
</td>';
110 td4 = '
<td>' + direxist + '
</td>';
114 td5 = '
<td>' + data[i].class + '
</td>';
115 td6 = '
<td>' + delbtn + '
</td>';
117 $tr = $('
<tr>' + td1 + td2 + td3 + td4 + td5 + td6 + '
</tr>');
119 $tr.data('path', data[i].path);
120 $tr.data('index', i);
124 $tbl.append('
<tr><td></td><td></td><td></td><td></td><td></td><td>' + addbtn + '
</td></tr>');
127 function VtoyFillCurrentPageItem(data) {
128 FillClassTable(data);
132 function OnClickMultiModeTab() {
133 var href = $(this).attr('href');
134 var index = parseInt(href.substr(
5,
1));
136 if (index <
0 || index
>= g_vtoy_data_default_index || current_tab_index === index) {
140 current_tab_index = index;
141 VtoyFillCurrentPageItem(m_data_class[index]);
146 var current_tab_index =
0;
147 callVtoySync({method : 'get_class'}, function(data) {
152 function AddClassEntry(root, type, valid, extra) {
153 var list = m_data_class[current_tab_index];
164 data.path = root.substr(g_current_dir.length);
167 for (var i =
0; i < list.length; i++) {
168 if (list[i].path === data.path) {
169 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
175 method : 'class_add',
176 index: current_tab_index,
182 FillClassTable(list);
183 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
187 function OnAddKeyClass(key, value) {
188 if (!ventoy_check_file_name_char(key)) {
189 Message.error(g_current_language === 'en' ? "As part of file name, key can not include invalid characters!" : "作为文件名的一部分,key 中不能包含特殊的符号!");
193 AddClassEntry(key,
0,
1, value);
196 function OnAddDirClassDir(root, extra) {
197 AddClassEntry(root,
1,
1, extra);
199 function OnAddDirClassParent(root, extra) {
200 AddClassEntry(root,
2,
1, extra);
203 function OnAddClassBtnClick(sel) {
206 "title": g_vtoy_cur_language.STR_SET_CLASS,
208 "title2": g_vtoy_cur_language.STR_CLASS
211 VtoySetKey(OnAddKeyClass, para);
213 var tip = (g_current_os === 'windows') ? '\\ISO\\Windows' : "/ISO/Linux";
215 "title": g_vtoy_cur_language.STR_SET_CLASS,
216 "tip": g_current_dir + tip,
219 "extra_title": g_vtoy_cur_language.STR_CLASS
223 VtoySelectDirPath(OnAddDirClassDir, para);
225 VtoySelectDirPath(OnAddDirClassParent, para);
231 $("#id_class_tbl").on('click', '.ClassAddBtn', function() {
235 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_KEY
239 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_DIR
243 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_PARENT
247 VtoySelectType(OnAddClassBtnClick, para);
250 $("#id_class_tbl").on('click', '.ClassDelBtn', function() {
251 var $tr = $(this).closest('tr');
252 var path = $tr.data('path');
253 var index = $tr.data('index');
256 method : 'class_del',
257 index: current_tab_index,
260 m_data_class[current_tab_index].splice(index,
1);
261 FillClassTable(m_data_class[current_tab_index]);
262 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
269 $('#id_tab_menu_class a[
href="#tab_0"]').click(OnClickMultiModeTab);
270 $('#id_tab_menu_class a[
href="#tab_1"]').click(OnClickMultiModeTab);
271 $('#id_tab_menu_class a[
href="#tab_2"]').click(OnClickMultiModeTab);
272 $('#id_tab_menu_class a[
href="#tab_3"]').click(OnClickMultiModeTab);
273 $('#id_tab_menu_class a[
href="#tab_4"]').click(OnClickMultiModeTab);
274 $('#id_tab_menu_class a[
href="#tab_5"]').click(OnClickMultiModeTab);
275 function UpdateTabTitleIcon(data) {
276 CommonUpdateTabTitleIcon(data.exist_menu_class, '#id_tab_menu_class a[
href="#tab_', 'menu_class');
278 $('#id_btn_reset').click(function() {
279 Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'menu_class')}).on(function(e) {
282 method : 'class_del',
283 index: current_tab_index,
289 m_data_class[current_tab_index].length =
0;
290 VtoyFillCurrentPageItem(m_data_class[g_vtoy_data_default_index]);
291 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
296 $('#id_tab_menu_class a[
href="#tab_0"]').tab('show');
297 VtoyFillCurrentPageItem(m_data_class[
0]);
298 VtoyPageLanguageChange(g_current_language);