]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - Plugson/www/plugson_menu_class.html
Remove VTOY_HELP_TXT_LANGUAGE option from Global Control Plugin.
[Ventoy.git] / Plugson / www / plugson_menu_class.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="fa fa-list-ul">&nbsp;&nbsp;</i>
5 <h1 class="box-title" style="font-weight:bold;" id="id_h1_page_title">xx</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_menuclass.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_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>
25 </ul>
26 </div>
27
28 <table id="id_class_tbl" class="table table-bordered">
29 <thead>
30 <tr>
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>
37 </tr>
38 </thead>
39 <tbody>
40 </tbody>
41 </table>
42 </div>
43 </div>
44 <script type="text/javascript">
45
46 function VtoyPageLanguageChange(newlang) {
47 VtoyCommonChangeLanguage(newlang);
48 $('h1[id=id_h1_page_title]').text(g_vtoy_cur_language.STR_PLUG_CLASS);
49
50 $("span[id=id_span_file_exist]").each(function(){
51 $(this).text(g_vtoy_cur_language.STR_FILE_EXIST);
52 });
53 $("span[id=id_span_file_nonexist]").each(function(){
54 $(this).text(g_vtoy_cur_language.STR_FILE_NONEXIST);
55 });
56 $("span[id=id_span_file_fuzzy]").each(function(){
57 $(this).text(g_vtoy_cur_language.STR_FILE_FUZZY);
58 });
59
60 $("span[id=id_span_dir_exist]").each(function(){
61 $(this).text(g_vtoy_cur_language.STR_DIR_EXIST);
62 });
63
64 $("span[id=id_span_dir_nonexist]").each(function(){
65 $(this).text(g_vtoy_cur_language.STR_DIR_NONEXIST);
66 });
67
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');
72 } else {
73 $('#id_th_class_path').text('关键字/绝对路径');
74 $('#id_th_class_class').text('菜单类型');
75 $('#id_th_class_type').text('类型');
76
77 }
78 }
79
80 function FillClassTable(data) {
81
82 var direxist = ventoy_get_status_line(1, 1);
83 var dirnonexist = ventoy_get_status_line(1, 0);
84
85 var addbtn = ventoy_get_xslg_addbtn('ClassAddBtn');
86 var delbtn = ventoy_get_xslg_delbtn('ClassDelBtn');
87
88 var td1, td2, td3, td4, td5, td6;
89 var $tbl = $("#id_class_tbl tbody");
90 $tbl.empty();
91
92 for (var i = 0; i < data.length; i++) {
93 var $tr;
94 td1 = '<td>' + (i + 1) + '</td>';
95
96 td3 = '<td>' + data[i].path + '</td>';
97 if (data[i].type === 0) {
98 td2 = '<td>key</td>';
99 td4 = '<td></td>';
100 } else {
101 if (data[i].type === 1) {
102 td2 = '<td>dir</td>';
103 } else {
104 td2 = '<td>parent</td>';
105 }
106
107 if (data[i].valid === 0) {
108 td4 = '<td>' + dirnonexist + '</td>';
109 } else {
110 td4 = '<td>' + direxist + '</td>';
111 }
112 }
113
114 td5 = '<td>' + data[i].class + '</td>';
115 td6 = '<td>' + delbtn + '</td>';
116
117 $tr = $('<tr>' + td1 + td2 + td3 + td4 + td5 + td6 + '</tr>');
118
119 $tr.data('path', data[i].path);
120 $tr.data('index', i);
121 $tbl.append($tr);
122 }
123
124 $tbl.append('<tr><td></td><td></td><td></td><td></td><td></td><td>' + addbtn + '</td></tr>');
125 }
126
127 function VtoyFillCurrentPageItem(data) {
128 FillClassTable(data);
129 }
130
131
132 function OnClickMultiModeTab() {
133 var href = $(this).attr('href');
134 var index = parseInt(href.substr(5, 1));
135
136 if (index < 0 || index >= g_vtoy_data_default_index || current_tab_index === index) {
137 return;
138 }
139
140 current_tab_index = index;
141 VtoyFillCurrentPageItem(m_data_class[index]);
142 }
143
144 //Main process
145 var m_data_class;
146 var current_tab_index = 0;
147 callVtoySync({method : 'get_class'}, function(data) {
148 m_data_class = data;
149 });
150
151
152 function AddClassEntry(root, type, valid, extra) {
153 var list = m_data_class[current_tab_index];
154 var data = {
155 "path": '',
156 "class": extra,
157 "type": type,
158 "valid": valid
159 };
160
161 if (type === 0) {
162 data.path = root;
163 } else {
164 data.path = root.substr(g_current_dir.length);
165 }
166
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);
170 return;
171 }
172 }
173
174 callVtoy({
175 method : 'class_add',
176 index: current_tab_index,
177 path: data.path,
178 class: data.class,
179 type: type
180 }, function(e) {
181 list.push(data);
182 FillClassTable(list);
183 Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
184 });
185 }
186
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 中不能包含特殊的符号!");
190 return;
191 }
192
193 AddClassEntry(key, 0, 1, value);
194 }
195
196 function OnAddDirClassDir(root, extra) {
197 AddClassEntry(root, 1, 1, extra);
198 }
199 function OnAddDirClassParent(root, extra) {
200 AddClassEntry(root, 2, 1, extra);
201 }
202
203 function OnAddClassBtnClick(sel) {
204 if (sel === 0) {
205 var para = {
206 "title": g_vtoy_cur_language.STR_SET_CLASS,
207 "title1": "Key",
208 "title2": g_vtoy_cur_language.STR_CLASS
209 };
210
211 VtoySetKey(OnAddKeyClass, para);
212 } else {
213 var tip = (g_current_os === 'windows') ? '\\ISO\\Windows' : "/ISO/Linux";
214 var para = {
215 "title": g_vtoy_cur_language.STR_SET_CLASS,
216 "tip": g_current_dir + tip,
217 "tip3": '',
218 "extra": true,
219 "extra_title": g_vtoy_cur_language.STR_CLASS
220 };
221
222 if (sel === 1) {
223 VtoySelectDirPath(OnAddDirClassDir, para);
224 } else {
225 VtoySelectDirPath(OnAddDirClassParent, para);
226 }
227
228 }
229 }
230
231 $("#id_class_tbl").on('click', '.ClassAddBtn', function() {
232 var para = [
233 {
234 "selected": true,
235 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_KEY
236 },
237 {
238 "selected": false,
239 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_DIR
240 },
241 {
242 "selected": false,
243 "tip": g_vtoy_cur_language.STR_SET_CLASS_BY_PARENT
244 }
245 ];
246
247 VtoySelectType(OnAddClassBtnClick, para);
248 });
249
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');
254
255 callVtoySync({
256 method : 'class_del',
257 index: current_tab_index,
258 path: path
259 }, function(data) {
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);
263 });
264 });
265
266
267
268
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');
277 }
278 $('#id_btn_reset').click(function() {
279 Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'menu_class')}).on(function(e) {
280 if (e) {
281 callVtoySync({
282 method : 'class_del',
283 index: current_tab_index,
284 path: g_del_all_path
285 }, function(data) {
286
287 });
288
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);
292 }
293 });
294 });
295
296 $('#id_tab_menu_class a[href="#tab_0"]').tab('show');
297 VtoyFillCurrentPageItem(m_data_class[0]);
298 VtoyPageLanguageChange(g_current_language);
299
300 </script>