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=
"glyphicon glyphicon-cd"> </i>
5 <h1 class=
"box-title" style=
"font-weight:bold;" id=
"id_h1_page_title">x
</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_dud.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_dud">
19 <li class=
""><a href=
"#tab_0" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold" >dud
</a></li>
20 <li class=
""><a href=
"#tab_1" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">dud_legacy
</a></li>
21 <li class=
""><a href=
"#tab_2" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">dud_uefi
</a></li>
22 <li class=
""><a href=
"#tab_3" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">dud_ia32
</a></li>
23 <li class=
""><a href=
"#tab_4" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">dud_aa64
</a></li>
24 <li class=
""><a href=
"#tab_5" data-toggle=
"tab" aria-expanded=
"false" style=
"font-weight:bold">dud_mips
</a></li>
28 <table id=
"id_dud_tbl" class=
"table table-bordered" >
31 <th style=
"width: 5%;">#
</th>
32 <th id=
"id_th_persistence_set" style=
"width: 80%;"></th>
33 <th id=
"id_th_operation" style=
"width: 10%;"></th>
41 <script type=
"text/javascript">
43 function VtoyPageLanguageChange(newlang) {
44 VtoyCommonChangeLanguage(newlang);
45 $('h1[id=id_h1_page_title]').text(g_vtoy_cur_language.STR_PLUG_DUD);
47 $("span[id=id_span_file_exist]").each(function(){
48 $(this).text(g_vtoy_cur_language.STR_FILE_EXIST);
50 $("span[id=id_span_file_nonexist]").each(function(){
51 $(this).text(g_vtoy_cur_language.STR_FILE_NONEXIST);
53 $("span[id=id_span_file_fuzzy]").each(function(){
54 $(this).text(g_vtoy_cur_language.STR_FILE_FUZZY);
57 $("span[id=id_span_dir_exist]").each(function(){
58 $(this).text(g_vtoy_cur_language.STR_DIR_EXIST);
61 $("span[id=id_span_dir_nonexist]").each(function(){
62 $(this).text(g_vtoy_cur_language.STR_DIR_NONEXIST);
65 $("th[id=id_th_dud_dat]").each(function(){
66 $(this).text(g_vtoy_cur_language.STR_DUD_FILE);
69 if (newlang === 'en') {
70 $('#id_th_autoins_path').text('Absolute Path');
71 $('#id_th_persistence_set').text('Setting');
73 $('#id_th_autoins_path').text('绝对路径');
74 $('#id_th_persistence_set').text('设置');
80 function FillDudInnerTable(i, data) {
81 var td1, td2, td3, td4;
82 var inner = data.list;
83 var tabid = '#tbl_inner_' + (i +
1);
84 var $inner_tbl = $(tabid + ' tbody');
86 var inaddbtn = ventoy_get_xslg_addbtn('DudInnerAddBtn');
87 var indelbtn = ventoy_get_xslg_delbtn('DudInnerDelBtn');
91 for (var j =
0; j < inner.length; j++) {
93 td1 = '
<td style=
"width: 5%;">'+(j+
1)+'
</td>';
94 td2 = '
<td>'+inner[j].path+'
</td>';
95 td3 = '
<td style=
"width: 10%;">'+ventoy_get_status_line(
0, inner[j].valid)+'
</td>';
96 td4 = '
<td style=
"width: 10%;">' + indelbtn + '
</td>';
98 $tr = $('
<tr>' + td1 + td2 + td3 + td4 + '
</tr>');
99 $tr.data('path', inner[j].path);
100 $tr.data('index', j);
101 $tr.data('outpath', data.path);
102 $tr.data('outindex', i);
104 $inner_tbl.append($tr);
107 $tr = $('
<tr><td></td><td></td><td></td><td>'+inaddbtn+'
</td></tr>');
108 $tr.data('outpath', data.path);
109 $tr.data('outindex', i);
111 $inner_tbl.append($tr);
114 function FillDudTable(data) {
115 var td1, td2, td3, td4, td5;
116 var addbtn = ventoy_get_addbtn('DudAddBtn');
117 var delbtn = ventoy_get_delbtn('DudDelBtn');
119 var $tbl = $("#id_dud_tbl tbody");
122 for (var i =
0; i < data.length; i++) {
125 var tdtbl1 ='
<table class=
"table table-condensed">'+
127 '
<td style=
"width:90%;vertical-align: middle;">' + data[i].path + '
</td>' +
128 '
<td style=
"vertical-align: middle;">' + ventoy_get_status_line(data[i].type, data[i].valid) + '
</td>' +
130 '
<tr><td></td><td></td></tr>'+
133 var tdtbl2 = '
<table class=
"table table-bordered" id=
"tbl_inner_' + (i+1) + '">'+
134 '
<thead><tr><th>#
</th><th id=
"id_th_dud_dat">'+g_vtoy_cur_language.STR_DUD_FILE+'
</th><th id=
"id_th_status">'+g_vtoy_cur_language.STR_STATUS+'
</th><th id=
"id_th_operation">'+g_vtoy_cur_language.STR_OPERATION+'
</th></tr></thead><tbody></tbody></table>';
136 td1 = '
<td style=
"vertical-align: middle;">' + (i +
1) + '
</td>';
137 td2 = '
<td>' + tdtbl1 + tdtbl2 + '
</td>';
138 td3 = '
<td style=
"vertical-align: middle;text-align: center;">' + delbtn + '
</td>';
139 $tr = $('
<tr>' + td1 + td2 + td3 + '
</tr>');
141 $tr.data('path', data[i].path);
142 $tr.data('index', i);
146 $tbl.append('
<tr><td></td><td></td><td style=
"vertical-align: middle;text-align: center;">' + addbtn + '
</td></tr>');
148 for (var i =
0; i < data.length; i++) {
149 FillDudInnerTable(i, data[i]);
153 function VtoyFillCurrentPageItem(data) {
158 function OnClickMultiModeTab() {
159 var href = $(this).attr('href');
160 var index = parseInt(href.substr(
5,
1));
162 if (index <
0 || index
>= g_vtoy_data_default_index || current_tab_index === index) {
166 current_tab_index = index;
167 VtoyFillCurrentPageItem(m_data_dud[index]);
170 function AddDudEntry(type, exist1, path1, path2) {
171 var list = m_data_dud[current_tab_index];
182 call_array[
0] = path2.substr(g_current_dir.length);
183 data_array[
0].path = path2.substr(g_current_dir.length);
186 "path": path1.substr(g_current_dir.length),
192 for (var i =
0; i < list.length; i++) {
193 if (list[i].path === data.path) {
194 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
201 index: current_tab_index,
208 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
212 function OnAddImageDud(exist1, path1, path2) {
213 AddDudEntry(
0, exist1, path1, path2);
216 function OnDudAddClick() {
217 var tip1 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-
7.4-x86_64.iso' : "/ISO/rhel-server-
7.4-x86_64.iso";
218 var tip2 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-
7.*-x86_64.iso' : "/ISO/rhel-server-
7.*-x86_64.iso";
219 var tip3 = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
221 "title": g_vtoy_cur_language.STR_SET_DUD,
222 "label1": g_vtoy_cur_language.STR_FILE_PATH,
223 "label2": g_vtoy_cur_language.STR_SET_DUD_FILE,
224 "tip1": g_current_dir + tip1,
225 "tip2": g_current_dir + tip2,
226 "tip3": g_current_dir + tip3
229 VtoySetFileFile(OnAddImageDud, para);
232 function DudDelEntry(path, index) {
235 index: current_tab_index,
238 m_data_dud[current_tab_index].splice(index,
1);
239 FillDudTable(m_data_dud[current_tab_index]);
240 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
244 function OnDudDelClick() {
245 var $tr = $(this).closest('tr');
246 var path = $tr.data('path');
247 var index = $tr.data('index');
249 DudDelEntry(path, index);
255 function OnAddDudDatFile(root, valid, extra) {
256 var path = root.substr(g_current_dir.length);
257 var data = m_data_dud[current_tab_index][m_out_index];
259 for (var i =
0; i < data.list.length; i++) {
260 if (data.list[i].path === path) {
261 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
267 method : 'dud_add_inner',
268 index: current_tab_index,
278 data.list.push(node);
279 FillDudInnerTable(m_out_index, data);
280 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
285 function OnDudInnerAddClick() {
286 var $tr = $(this).closest('tr');
287 var outpath = $tr.data('outpath');
288 var outindex = $tr.data('outindex');
290 var tip = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
292 "title": g_vtoy_cur_language.STR_ADD_DUD_FILE,
294 "tip1": g_current_dir + tip,
301 m_out_index = outindex;
302 m_out_path = outpath;
303 VtoySelectFilePath(OnAddDudDatFile, para);
306 function DudDelInnerEntry(outpath, outindex, path, index) {
308 method : 'dud_del_inner',
309 index: current_tab_index,
313 var data = m_data_dud[current_tab_index][outindex];
315 data.list.splice(index,
1);
316 FillDudInnerTable(outindex, m_data_dud[current_tab_index][outindex]);
317 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
321 function OnDudInnerDelClick() {
322 var $tr = $(this).closest('tr');
324 var path = $tr.data('path');
325 var index = $tr.data('index');
326 var outpath = $tr.data('outpath');
327 var outindex = $tr.data('outindex');
329 var list = m_data_dud[current_tab_index][outindex].list;
331 if (list.length ===
1) {
332 ventoy_confirm(g_vtoy_cur_language.STR_DEL_LAST, DudDelEntry, outpath, outindex);
334 DudDelInnerEntry(outpath, outindex, path, index);
344 var current_tab_index =
0;
345 callVtoySync({method : 'get_dud'}, function(data) {
349 $("#id_dud_tbl").on('click', '.DudAddBtn', OnDudAddClick);
350 $("#id_dud_tbl").on('click', '.DudDelBtn', OnDudDelClick);
351 $("#id_dud_tbl").on('click', '.DudInnerAddBtn', OnDudInnerAddClick);
352 $("#id_dud_tbl").on('click', '.DudInnerDelBtn', OnDudInnerDelClick);
354 $('#id_tab_dud a[
href="#tab_0"]').click(OnClickMultiModeTab);
355 $('#id_tab_dud a[
href="#tab_1"]').click(OnClickMultiModeTab);
356 $('#id_tab_dud a[
href="#tab_2"]').click(OnClickMultiModeTab);
357 $('#id_tab_dud a[
href="#tab_3"]').click(OnClickMultiModeTab);
358 $('#id_tab_dud a[
href="#tab_4"]').click(OnClickMultiModeTab);
359 $('#id_tab_dud a[
href="#tab_5"]').click(OnClickMultiModeTab);
360 function UpdateTabTitleIcon(data) {
361 CommonUpdateTabTitleIcon(data.exist_dud, '#id_tab_dud a[
href="#tab_', 'dud');
363 $('#id_btn_reset').click(function() {
364 Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'dud')}).on(function(e) {
368 index: current_tab_index,
374 m_data_dud[current_tab_index].length =
0;
375 VtoyFillCurrentPageItem(m_data_dud[g_vtoy_data_default_index]);
376 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
381 $('#id_tab_dud a[
href="#tab_0"]').tab('show');
382 VtoyFillCurrentPageItem(m_data_dud[
0]);
383 VtoyPageLanguageChange(g_current_language);