]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - Plugson/www/plugson_dud.html
1.0.70 release
[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-10" 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
8 <div class="col-sm-2" style="font-size:16px;padding-top:8px;">
9 <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>
10 </div>
11 </div>
12 <legend></legend>
13
14 <div class="box-body">
15 <div class="nav-tabs-custom">
16 <ul class="nav nav-tabs" id="id_tab_dud">
17 <li class=""><a href="#tab_0" data-toggle="tab" aria-expanded="false" style="font-weight:bold" >dud</a></li>
18 <li class=""><a href="#tab_1" data-toggle="tab" aria-expanded="false" style="font-weight:bold">dud_legacy</a></li>
19 <li class=""><a href="#tab_2" data-toggle="tab" aria-expanded="false" style="font-weight:bold">dud_uefi</a></li>
20 <li class=""><a href="#tab_3" data-toggle="tab" aria-expanded="false" style="font-weight:bold">dud_ia32</a></li>
21 <li class=""><a href="#tab_4" data-toggle="tab" aria-expanded="false" style="font-weight:bold">dud_aa64</a></li>
22 <li class=""><a href="#tab_5" data-toggle="tab" aria-expanded="false" style="font-weight:bold">dud_mips</a></li>
23 </ul>
24 </div>
25
26 <table id="id_dud_tbl" class="table table-bordered" >
27 <thead>
28 <tr>
29 <th style="width: 5%;">#</th>
30 <th id="id_th_persistence_set" style="width: 80%;"></th>
31 <th id="id_th_operation" style="width: 10%;"></th>
32 </tr>
33 </thead>
34 <tbody>
35 </tbody>
36 </table>
37 </div>
38 </div>
39 <script type="text/javascript">
40
41 function VtoyPageLanguageChange(newlang) {
42 VtoyCommonChangeLanguage(newlang);
43 $('h1[id=id_h1_page_title]').text(g_vtoy_cur_language.STR_PLUG_DUD);
44
45 $("span[id=id_span_file_exist]").each(function(){
46 $(this).text(g_vtoy_cur_language.STR_FILE_EXIST);
47 });
48 $("span[id=id_span_file_nonexist]").each(function(){
49 $(this).text(g_vtoy_cur_language.STR_FILE_NONEXIST);
50 });
51 $("span[id=id_span_file_fuzzy]").each(function(){
52 $(this).text(g_vtoy_cur_language.STR_FILE_FUZZY);
53 });
54
55 $("span[id=id_span_dir_exist]").each(function(){
56 $(this).text(g_vtoy_cur_language.STR_DIR_EXIST);
57 });
58
59 $("span[id=id_span_dir_nonexist]").each(function(){
60 $(this).text(g_vtoy_cur_language.STR_DIR_NONEXIST);
61 });
62
63 $("th[id=id_th_dud_dat]").each(function(){
64 $(this).text(g_vtoy_cur_language.STR_DUD_FILE);
65 });
66
67 if (newlang === 'en') {
68 $('#id_th_autoins_path').text('Absolute Path');
69 $('#id_th_persistence_set').text('Setting');
70 } else {
71 $('#id_th_autoins_path').text('绝对路径');
72 $('#id_th_persistence_set').text('设置');
73
74 }
75 }
76
77
78 function FillDudInnerTable(i, data) {
79 var td1, td2, td3, td4;
80 var inner = data.list;
81 var tabid = '#tbl_inner_' + (i + 1);
82 var $inner_tbl = $(tabid + ' tbody');
83
84 var inaddbtn = ventoy_get_xslg_addbtn('DudInnerAddBtn');
85 var indelbtn = ventoy_get_xslg_delbtn('DudInnerDelBtn');
86
87 $inner_tbl.empty();
88
89 for (var j = 0; j < inner.length; j++) {
90 var $tr;
91 td1 = '<td style="width: 5%;">'+(j+1)+'</td>';
92 td2 = '<td>'+inner[j].path+'</td>';
93 td3 = '<td style="width: 10%;">'+ventoy_get_status_line(0, inner[j].valid)+'</td>';
94 td4 = '<td style="width: 10%;">' + indelbtn + '</td>';
95
96 $tr = $('<tr>' + td1 + td2 + td3 + td4 + '</tr>');
97 $tr.data('path', inner[j].path);
98 $tr.data('index', j);
99 $tr.data('outpath', data.path);
100 $tr.data('outindex', i);
101
102 $inner_tbl.append($tr);
103 }
104
105 $tr = $('<tr><td></td><td></td><td></td><td>'+inaddbtn+'</td></tr>');
106 $tr.data('outpath', data.path);
107 $tr.data('outindex', i);
108
109 $inner_tbl.append($tr);
110 }
111
112 function FillDudTable(data) {
113 var td1, td2, td3, td4, td5;
114 var addbtn = ventoy_get_addbtn('DudAddBtn');
115 var delbtn = ventoy_get_delbtn('DudDelBtn');
116
117 var $tbl = $("#id_dud_tbl tbody");
118 $tbl.empty();
119
120 for (var i = 0; i < data.length; i++) {
121 var $tr;
122
123 var tdtbl1 ='<table class="table table-condensed">'+
124 '<tbody><tr>'+
125 '<td style="width:90%;vertical-align: middle;">' + data[i].path + '</td>' +
126 '<td style="vertical-align: middle;">' + ventoy_get_status_line(data[i].type, data[i].valid) + '</td>' +
127 '</tr>'+
128 '<tr><td></td><td></td></tr>'+
129 '</tbody></table>';
130
131 var tdtbl2 = '<table class="table table-bordered" id="tbl_inner_' + (i+1) + '">'+
132 '<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>';
133
134 td1 = '<td style="vertical-align: middle;">' + (i + 1) + '</td>';
135 td2 = '<td>' + tdtbl1 + tdtbl2 + '</td>';
136 td3 = '<td style="vertical-align: middle;text-align: center;">' + delbtn + '</td>';
137 $tr = $('<tr>' + td1 + td2 + td3 + '</tr>');
138
139 $tr.data('path', data[i].path);
140 $tr.data('index', i);
141 $tbl.append($tr);
142 }
143
144 $tbl.append('<tr><td></td><td></td><td style="vertical-align: middle;text-align: center;">' + addbtn + '</td></tr>');
145
146 for (var i = 0; i < data.length; i++) {
147 FillDudInnerTable(i, data[i]);
148 }
149 }
150
151 function VtoyFillCurrentPageItem(data) {
152 FillDudTable(data);
153 }
154
155
156 function OnClickMultiModeTab() {
157 var href = $(this).attr('href');
158 var index = parseInt(href.substr(5, 1));
159
160 if (index < 0 || index >= g_vtoy_data_default_index || current_tab_index === index) {
161 return;
162 }
163
164 current_tab_index = index;
165 VtoyFillCurrentPageItem(m_data_dud[index]);
166 }
167
168 function AddDudEntry(type, exist1, path1, path2) {
169 var list = m_data_dud[current_tab_index];
170 var data_array = [
171 {
172 "path": "",
173 "valid": 1
174 }
175 ];
176 var call_array = [
177 ""
178 ];
179
180 call_array[0] = path2.substr(g_current_dir.length);
181 data_array[0].path = path2.substr(g_current_dir.length);
182
183 var data = {
184 "path": path1.substr(g_current_dir.length),
185 "list": data_array,
186 "type": type,
187 "valid": exist1
188 };
189
190 for (var i = 0; i < list.length; i++) {
191 if (list[i].path === data.path) {
192 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
193 return;
194 }
195 }
196
197 callVtoy({
198 method : 'dud_add',
199 index: current_tab_index,
200 path: data.path,
201 dud: call_array,
202 type: type
203 }, function(e) {
204 list.push(data);
205 FillDudTable(list);
206 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
207 });
208 }
209
210 function OnAddImageDud(exist1, path1, path2) {
211 AddDudEntry(0, exist1, path1, path2);
212 }
213
214 function OnDudAddClick() {
215 var tip1 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-7.4-x86_64.iso' : "/ISO/rhel-server-7.4-x86_64.iso";
216 var tip2 = (g_current_os === 'windows') ? '\\ISO\\rhel-server-7.*-x86_64.iso' : "/ISO/rhel-server-7.*-x86_64.iso";
217 var tip3 = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
218 var para = {
219 "title": g_vtoy_cur_language.STR_SET_DUD,
220 "label1": g_vtoy_cur_language.STR_FILE_PATH,
221 "label2": g_vtoy_cur_language.STR_SET_DUD_FILE,
222 "tip1": g_current_dir + tip1,
223 "tip2": g_current_dir + tip2,
224 "tip3": g_current_dir + tip3
225 };
226
227 VtoySetFileFile(OnAddImageDud, para);
228 }
229
230 function DudDelEntry(path, index) {
231 callVtoySync({
232 method : 'dud_del',
233 index: current_tab_index,
234 path: path
235 }, function(data) {
236 m_data_dud[current_tab_index].splice(index, 1);
237 FillDudTable(m_data_dud[current_tab_index]);
238 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
239 });
240 }
241
242 function OnDudDelClick() {
243 var $tr = $(this).closest('tr');
244 var path = $tr.data('path');
245 var index = $tr.data('index');
246
247 DudDelEntry(path, index);
248 }
249
250
251 var m_out_index;
252 var m_out_path;
253 function OnAddDudDatFile(root, valid, extra) {
254 var path = root.substr(g_current_dir.length);
255 var data = m_data_dud[current_tab_index][m_out_index];
256
257 for (var i = 0; i < data.list.length; i++) {
258 if (data.list[i].path === path) {
259 Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
260 return;
261 }
262 }
263
264 callVtoy({
265 method : 'dud_add_inner',
266 index: current_tab_index,
267 outpath: m_out_path,
268 path: path
269 }, function(e) {
270
271 var node = {
272 "path": path,
273 "valid": 1
274 };
275
276 data.list.push(node);
277 FillDudInnerTable(m_out_index, data);
278 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
279 });
280
281 }
282
283 function OnDudInnerAddClick() {
284 var $tr = $(this).closest('tr');
285 var outpath = $tr.data('outpath');
286 var outindex = $tr.data('outindex');
287
288 var tip = (g_current_os === 'windows') ? '\\ventoy\\dd.iso' : "/ventoy/dd.iso";
289 var para = {
290 "title": g_vtoy_cur_language.STR_ADD_DUD_FILE,
291 "fuzzy": 0,
292 "tip1": g_current_dir + tip,
293 "tip2": '',
294 "tip3": '',
295 "extra": false,
296 "extra_title": ''
297 };
298
299 m_out_index = outindex;
300 m_out_path = outpath;
301 VtoySelectFilePath(OnAddDudDatFile, para);
302 }
303
304 function DudDelInnerEntry(outpath, outindex, path, index) {
305 callVtoy({
306 method : 'dud_del_inner',
307 index: current_tab_index,
308 outpath: outpath,
309 path: path
310 }, function(e) {
311 var data = m_data_dud[current_tab_index][outindex];
312
313 data.list.splice(index, 1);
314 FillDudInnerTable(outindex, m_data_dud[current_tab_index][outindex]);
315 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
316 });
317 }
318
319 function OnDudInnerDelClick() {
320 var $tr = $(this).closest('tr');
321
322 var path = $tr.data('path');
323 var index = $tr.data('index');
324 var outpath = $tr.data('outpath');
325 var outindex = $tr.data('outindex');
326
327 var list = m_data_dud[current_tab_index][outindex].list;
328
329 if (list.length === 1) {
330 ventoy_confirm(g_vtoy_cur_language.STR_DEL_LAST, DudDelEntry, outpath, outindex);
331 } else {
332 DudDelInnerEntry(outpath, outindex, path, index);
333 }
334 }
335
336
337
338
339
340 //Main process
341 var m_data_dud;
342 var current_tab_index = 0;
343 callVtoySync({method : 'get_dud'}, function(data) {
344 m_data_dud = data;
345 });
346
347 $("#id_dud_tbl").on('click', '.DudAddBtn', OnDudAddClick);
348 $("#id_dud_tbl").on('click', '.DudDelBtn', OnDudDelClick);
349 $("#id_dud_tbl").on('click', '.DudInnerAddBtn', OnDudInnerAddClick);
350 $("#id_dud_tbl").on('click', '.DudInnerDelBtn', OnDudInnerDelClick);
351
352 $('#id_tab_dud a[href="#tab_0"]').click(OnClickMultiModeTab);
353 $('#id_tab_dud a[href="#tab_1"]').click(OnClickMultiModeTab);
354 $('#id_tab_dud a[href="#tab_2"]').click(OnClickMultiModeTab);
355 $('#id_tab_dud a[href="#tab_3"]').click(OnClickMultiModeTab);
356 $('#id_tab_dud a[href="#tab_4"]').click(OnClickMultiModeTab);
357 $('#id_tab_dud a[href="#tab_5"]').click(OnClickMultiModeTab);
358
359 $('#id_tab_dud a[href="#tab_0"]').tab('show');
360 VtoyFillCurrentPageItem(m_data_dud[0]);
361 VtoyPageLanguageChange(g_current_language);
362
363 </script>