]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - Plugson/www/plugson_dud.html
Fix VTOY_LINUX_REMOUNT option does not work with latest linux kernel version. (#2661...
[Ventoy.git] / Plugson / www / plugson_dud.html
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">&nbsp;&nbsp;</i>
5 <h1 class="box-title" style="font-weight:bold;" id="id_h1_page_title">x</h1>
6 </div>
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>
9 </div>
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>
12 </div>
13 </div>
14 <legend></legend>
15
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>
25 </ul>
26 </div>
27
28 <table id="id_dud_tbl" class="table table-bordered" >
29 <thead>
30 <tr>
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>
34 </tr>
35 </thead>
36 <tbody>
37 </tbody>
38 </table>
39 </div>
40 </div>
41 <script type="text/javascript">
42
43 function VtoyPageLanguageChange(newlang) {
44 VtoyCommonChangeLanguage(newlang);
45 $('h1[id=id_h1_page_title]').text(g_vtoy_cur_language.STR_PLUG_DUD);
46
47 $("span[id=id_span_file_exist]").each(function(){
48 $(this).text(g_vtoy_cur_language.STR_FILE_EXIST);
49 });
50 $("span[id=id_span_file_nonexist]").each(function(){
51 $(this).text(g_vtoy_cur_language.STR_FILE_NONEXIST);
52 });
53 $("span[id=id_span_file_fuzzy]").each(function(){
54 $(this).text(g_vtoy_cur_language.STR_FILE_FUZZY);
55 });
56
57 $("span[id=id_span_dir_exist]").each(function(){
58 $(this).text(g_vtoy_cur_language.STR_DIR_EXIST);
59 });
60
61 $("span[id=id_span_dir_nonexist]").each(function(){
62 $(this).text(g_vtoy_cur_language.STR_DIR_NONEXIST);
63 });
64
65 $("th[id=id_th_dud_dat]").each(function(){
66 $(this).text(g_vtoy_cur_language.STR_DUD_FILE);
67 });
68
69 if (newlang === 'en') {
70 $('#id_th_autoins_path').text('Absolute Path');
71 $('#id_th_persistence_set').text('Setting');
72 } else {
73 $('#id_th_autoins_path').text('绝对路径');
74 $('#id_th_persistence_set').text('设置');
75
76 }
77 }
78
79
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');
85
86 var inaddbtn = ventoy_get_xslg_addbtn('DudInnerAddBtn');
87 var indelbtn = ventoy_get_xslg_delbtn('DudInnerDelBtn');
88
89 $inner_tbl.empty();
90
91 for (var j = 0; j < inner.length; j++) {
92 var $tr;
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>';
97
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);
103
104 $inner_tbl.append($tr);
105 }
106
107 $tr = $('<tr><td></td><td></td><td></td><td>'+inaddbtn+'</td></tr>');
108 $tr.data('outpath', data.path);
109 $tr.data('outindex', i);
110
111 $inner_tbl.append($tr);
112 }
113
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');
118
119 var $tbl = $("#id_dud_tbl tbody");
120 $tbl.empty();
121
122 for (var i = 0; i < data.length; i++) {
123 var $tr;
124
125 var tdtbl1 ='<table class="table table-condensed">'+
126 '<tbody><tr>'+
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>' +
129 '</tr>'+
130 '<tr><td></td><td></td></tr>'+
131 '</tbody></table>';
132
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>';
135
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>');
140
141 $tr.data('path', data[i].path);
142 $tr.data('index', i);
143 $tbl.append($tr);
144 }
145
146 $tbl.append('<tr><td></td><td></td><td style="vertical-align: middle;text-align: center;">' + addbtn + '</td></tr>');
147
148 for (var i = 0; i < data.length; i++) {
149 FillDudInnerTable(i, data[i]);
150 }
151 }
152
153 function VtoyFillCurrentPageItem(data) {
154 FillDudTable(data);
155 }
156
157
158 function OnClickMultiModeTab() {
159 var href = $(this).attr('href');
160 var index = parseInt(href.substr(5, 1));
161
162 if (index < 0 || index >= g_vtoy_data_default_index || current_tab_index === index) {
163 return;
164 }
165
166 current_tab_index = index;
167 VtoyFillCurrentPageItem(m_data_dud[index]);
168 }
169
170 function AddDudEntry(type, exist1, path1, path2) {
171 var list = m_data_dud[current_tab_index];
172 var data_array = [
173 {
174 "path": "",
175 "valid": 1
176 }
177 ];
178 var call_array = [
179 ""
180 ];
181
182 call_array[0] = path2.substr(g_current_dir.length);
183 data_array[0].path = path2.substr(g_current_dir.length);
184
185 var data = {
186 "path": path1.substr(g_current_dir.length),
187 "list": data_array,
188 "type": type,
189 "valid": exist1
190 };
191
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);
195 return;
196 }
197 }
198
199 callVtoy({
200 method : 'dud_add',
201 index: current_tab_index,
202 path: data.path,
203 dud: call_array,
204 type: type
205 }, function(e) {
206 if (e.result === 'success') {
207 list.push(data);
208 FillDudTable(list);
209 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
210 } else if (e.result === 'duplicate') {
211 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
212 }
213 });
214 }
215
216 function OnAddImageDud(exist1, path1, path2) {
217 AddDudEntry(0, exist1, path1, path2);
218 }
219
220 function OnDudAddClick() {
221 var tip1 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-7.4-x86_64.iso' : "/ISO/rhel-server-7.4-x86_64.iso";
222 var tip2 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-7.*-x86_64.iso' : "/ISO/rhel-server-7.*-x86_64.iso";
223 var tip3 = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
224 var para = {
225 "title": g_vtoy_cur_language.STR_SET_DUD,
226 "label1": g_vtoy_cur_language.STR_FILE_PATH,
227 "label2": g_vtoy_cur_language.STR_SET_DUD_FILE,
228 "tip1": g_current_dir + tip1,
229 "tip2": g_current_dir + tip2,
230 "tip3": g_current_dir + tip3
231 };
232
233 VtoySetFileFile(OnAddImageDud, para);
234 }
235
236 function DudDelEntry(path, index) {
237 callVtoySync({
238 method : 'dud_del',
239 index: current_tab_index,
240 path: path
241 }, function(data) {
242 m_data_dud[current_tab_index].splice(index, 1);
243 FillDudTable(m_data_dud[current_tab_index]);
244 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
245 });
246 }
247
248 function OnDudDelClick() {
249 var $tr = $(this).closest('tr');
250 var path = $tr.data('path');
251 var index = $tr.data('index');
252
253 DudDelEntry(path, index);
254 }
255
256
257 var m_out_index;
258 var m_out_path;
259 function OnAddDudDatFile(root, valid, extra) {
260 var path = root.substr(g_current_dir.length);
261 var data = m_data_dud[current_tab_index][m_out_index];
262
263 for (var i = 0; i < data.list.length; i++) {
264 if (data.list[i].path === path) {
265 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
266 return;
267 }
268 }
269
270 callVtoy({
271 method : 'dud_add_inner',
272 index: current_tab_index,
273 outpath: m_out_path,
274 path: path
275 }, function(e) {
276
277 var node = {
278 "path": path,
279 "valid": 1
280 };
281
282 data.list.push(node);
283 FillDudInnerTable(m_out_index, data);
284 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
285 });
286
287 }
288
289 function OnDudInnerAddClick() {
290 var $tr = $(this).closest('tr');
291 var outpath = $tr.data('outpath');
292 var outindex = $tr.data('outindex');
293
294 var tip = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
295 var para = {
296 "title": g_vtoy_cur_language.STR_ADD_DUD_FILE,
297 "fuzzy": 0,
298 "tip1": g_current_dir + tip,
299 "tip2": '',
300 "tip3": '',
301 "extra": false,
302 "extra_title": ''
303 };
304
305 m_out_index = outindex;
306 m_out_path = outpath;
307 VtoySelectFilePath(OnAddDudDatFile, para);
308 }
309
310 function DudDelInnerEntry(outpath, outindex, path, index) {
311 callVtoy({
312 method : 'dud_del_inner',
313 index: current_tab_index,
314 outpath: outpath,
315 path: path
316 }, function(e) {
317 var data = m_data_dud[current_tab_index][outindex];
318
319 data.list.splice(index, 1);
320 FillDudInnerTable(outindex, m_data_dud[current_tab_index][outindex]);
321 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
322 });
323 }
324
325 function OnDudInnerDelClick() {
326 var $tr = $(this).closest('tr');
327
328 var path = $tr.data('path');
329 var index = $tr.data('index');
330 var outpath = $tr.data('outpath');
331 var outindex = $tr.data('outindex');
332
333 var list = m_data_dud[current_tab_index][outindex].list;
334
335 if (list.length === 1) {
336 ventoy_confirm(g_vtoy_cur_language.STR_DEL_LAST, DudDelEntry, outpath, outindex);
337 } else {
338 DudDelInnerEntry(outpath, outindex, path, index);
339 }
340 }
341
342
343
344
345
346 //Main process
347 var m_data_dud;
348 var current_tab_index = 0;
349 callVtoySync({method : 'get_dud'}, function(data) {
350 m_data_dud = data;
351 });
352
353 $("#id_dud_tbl").on('click', '.DudAddBtn', OnDudAddClick);
354 $("#id_dud_tbl").on('click', '.DudDelBtn', OnDudDelClick);
355 $("#id_dud_tbl").on('click', '.DudInnerAddBtn', OnDudInnerAddClick);
356 $("#id_dud_tbl").on('click', '.DudInnerDelBtn', OnDudInnerDelClick);
357
358 $('#id_tab_dud a[href="#tab_0"]').click(OnClickMultiModeTab);
359 $('#id_tab_dud a[href="#tab_1"]').click(OnClickMultiModeTab);
360 $('#id_tab_dud a[href="#tab_2"]').click(OnClickMultiModeTab);
361 $('#id_tab_dud a[href="#tab_3"]').click(OnClickMultiModeTab);
362 $('#id_tab_dud a[href="#tab_4"]').click(OnClickMultiModeTab);
363 $('#id_tab_dud a[href="#tab_5"]').click(OnClickMultiModeTab);
364 function UpdateTabTitleIcon(data) {
365 CommonUpdateTabTitleIcon(data.exist_dud, '#id_tab_dud a[href="#tab_', 'dud');
366 }
367 $('#id_btn_reset').click(function() {
368 Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'dud')}).on(function(e) {
369 if (e) {
370 callVtoySync({
371 method : 'dud_del',
372 index: current_tab_index,
373 path: g_del_all_path
374 }, function(data) {
375
376 });
377
378 m_data_dud[current_tab_index].length = 0;
379 VtoyFillCurrentPageItem(m_data_dud[g_vtoy_data_default_index]);
380 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
381 }
382 });
383 });
384
385 $('#id_tab_dud a[href="#tab_0"]').tab('show');
386 VtoyFillCurrentPageItem(m_data_dud[0]);
387 VtoyPageLanguageChange(g_current_language);
388
389 </script>