]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - Plugson/www/plugson_control.html
Fix the "Unsupported vtoy type unknown" error when boot a VDI file created by Virtual...
[Ventoy.git] / Plugson / www / plugson_control.html
index 60c8fc75443d79e43536b3271432f0ab9f65e9ab..7aa433d016ab2d1e0b6511fedd657fc82eb9e612 100644 (file)
@@ -1,6 +1,6 @@
 <div class="box box-primary" id="control">\r
     <div class="box-header">\r
-        <div class="col-sm-8" style="padding-top:8px;">\r
+        <div class="col-sm-7" style="padding-top:8px;">\r
             <i class="fa fa-wrench">&nbsp;&nbsp;</i>\r
             <h1 class="box-title" style="font-weight:bold;" id="id_h1_page_title">全局控制插件</h1>\r
         </div>\r
           <button id="id_btn_expand" class="btn btn-sm btn-primary"><i style="font-size: 14px;" class="fa fa-plus"></i></button>\r
         </div>\r
 \r
+        <div class="col-sm-1" style="padding-top:2px;">\r
+          <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>\r
+        </div>\r
+\r
         <div class="col-sm-2" style="font-size:16px;padding-top:8px;">\r
             <a id="id_a_official_doc" target="_blank" href="https://www.ventoy.net/cn/plugin_control.html"><span class="fa fa-link"></span><span id="id_span_official_doc">官网文档</span></a>\r
         </div>\r
         </ul>\r
       </div>\r
 \r
+\r
+      <div class="box box-primary box-solid">\r
+            <div class="box-header with-border">\r
+              <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_MENU_LANGUAGE\r
+                <span id="id_span_desc_cn"> —— 菜单语言</span></h3>\r
+              <div class="box-tools pull-right">\r
+                <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+              </div><!-- /.box-tools -->\r
+            </div><!-- /.box-header -->\r
+            <div class="box-body no-padding">\r
+                <table class="table table-bordered  no-padding">\r
+                    <tr style="font-weight:bold;">\r
+                      <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+                      <td>\r
+                        <select id="id_ctrl_sel_menu_lang" name="name_ctrl_sel_menu_lang" class="form-control">\r
+                            \r
+                        </select>\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_cn">\r
+                      <td class="td_ctrl_col">选项说明</td>\r
+                      <td>\r
+                        Ventoy 菜单的语言版本。默认是 "en_US"。\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_en">\r
+                      <td class="td_ctrl_col">Option Description</td>\r
+                      <td>\r
+                        Ventoy menu language. Default is "en_US", \r
+                      </td>\r
+                    </tr>\r
+                </table>\r
+            </div><!-- /.box-body -->\r
+        </div><!-- /.box -->\r
+\r
+\r
       \r
       <div class="box box-primary box-solid">\r
             <div class="box-header with-border">\r
                       <td class="td_ctrl_col">选项说明</td>\r
                       <td>\r
                         指定搜索ISO文件的根目录。默认Ventoy会搜索U盘上的所有目录和子目录,当你U盘上有海量的文件时,这个过程会很慢。<br/>\r
-                        这种情况下你可以把ISO文件单独放在某个目录下,然后通过这个变量来指定搜索路径,此时Ventoy就只会搜索该目录及其子目录。\r
+                        这种情况下你可以把ISO文件单独放在某个子目录下,然后通过这个变量来指定搜索路径,此时Ventoy就只会搜索该目录及其子目录。<br/>\r
+                        注意这里不能设置为U盘根目录,必须为一个子目录。\r
                       </td>\r
                     </tr>\r
                     <tr id="tr_title_desc_en">\r
                       <td class="td_ctrl_col">Option Description</td>\r
                       <td>\r
                         The root path where to search the image files. By default, Ventoy will search all the directories and subdirectories in the USB. This will be very slow when you have huge number of files in the USB. \r
-                        In this case, you can put all the image files in one directory and use this to specify the search path. \r
-                        After that Ventoy will only search this directory and its subdirectories for image files.\r
+                        In this case, you can put all the image files in one subdirectory and use this to specify the search path. \r
+                        After that Ventoy will only search this directory and its subdirectories for image files.<br/>\r
+                        Note: the path must not be the mountpoint of the first partition, but a subdirectory.\r
                       </td>\r
                     </tr>\r
                 </table>\r
                       <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassTPMCheck</code><br/>\r
                       <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassSecureBootCheck</code><br/>\r
                       <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassCPUCheck</code><br/>\r
-                      <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassStorageCheck</code><br/>\r
                     </td>\r
                   </tr>\r
                   <tr id="tr_title_desc_en">\r
                     <td class="td_ctrl_col" id="td_title_desc">Option Description</td>\r
                     <td>\r
-                      <code style="font-weight: bold;">0</code> Don not bypass Windows 11 hardware check.<br/>\r
+                      <code style="font-weight: bold;">0</code> Do not bypass Windows 11 hardware check.<br/>\r
                       <code style="font-weight: bold;">1</code> Bypass Windows 11 hardware check. <br/><br/>\r
                       This option only avaliable for standard Windows 11 ISO files.\r
                       When set to 1, Ventoy will create the following registries to bypass Windows 11 hardware check when install. <br/>\r
           </div><!-- /.box-body -->\r
         </div><!-- /.box -->\r
         \r
+        \r
+        \r
+        <div class="box box-primary box-solid">\r
+          <div class="box-header with-border">\r
+            <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN11_BYPASS_NRO\r
+              <span id="id_span_desc_cn"> —— 绕过Windows 11 在线账户需求</span></h3>\r
+            <div class="box-tools pull-right">\r
+              <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+            </div><!-- /.box-tools -->\r
+          </div><!-- /.box-header -->\r
+          <div class="box-body no-padding">\r
+              <table class="table table-bordered  no-padding">\r
+                  <tr style="font-weight:bold;">\r
+                    <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+                    <td>\r
+                      <label class="radio-inline">\r
+                          <input type="radio" id="id_ctrl_bypass_nro_radio0" name="id_ctrl_bypass_nro_radio" data-type="0" value="0"/> <span style="font-weight:bold;">0</span>\r
+                      </label>&nbsp;&nbsp;&nbsp;&nbsp;\r
+                      <label class="radio-inline">\r
+                          <input type="radio" id="id_ctrl_bypass_nro_radio1" name="id_ctrl_bypass_nro_radio" data-type="1" value="1"/> <span style="font-weight:bold;">1</span>\r
+                      </label>\r
+                    </td>\r
+                  </tr>\r
+                  <tr id="tr_title_desc_cn">\r
+                    <td class="td_ctrl_col" id="td_title_desc">选项说明</td>\r
+                    <td>\r
+                      <code style="font-weight: bold;">0</code> 不绕过Windows 11安装时的在线账户需求。<br/>\r
+                      <code style="font-weight: bold;">1</code> 绕过Windows 11安装时的在线账户需求。<br/><br/>\r
+                      该选项只对标准Windows 11 ISO文件有效,对于其他镜像文件无效。\r
+                      当设置为1时,Ventoy 会在安装时创建以下注册表项用来绕过 Windows 11 安装时对在线账户的需求。<br/>\r
+                      <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code><br/>                      \r
+                    </td>\r
+                  </tr>\r
+                  <tr id="tr_title_desc_en">\r
+                    <td class="td_ctrl_col" id="td_title_desc">Option Description</td>\r
+                    <td>\r
+                      <code style="font-weight: bold;">0</code> Do not bypass Windows 11 online account requirement.<br/>\r
+                      <code style="font-weight: bold;">1</code> Bypass Windows 11 online account requirement. <br/><br/>\r
+                      This option only avaliable for standard Windows 11 ISO files.\r
+                      When set to 1, Ventoy will create the following registry to bypass Windows 11 online account requirement when install. <br/>\r
+                      <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code>\r
+                    </td>\r
+                  </tr>\r
+              </table>\r
+          </div><!-- /.box-body -->\r
+        </div><!-- /.box -->\r
+        \r
       \r
       \r
 \r
         </div><!-- /.box -->\r
 \r
 \r
+\r
+        <div class="box box-primary box-solid">\r
+            <div class="box-header with-border">\r
+              <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SECONDARY_BOOT_MENU\r
+                <span id="id_span_desc_cn"> —— 二级启动菜单显示开关</span></h3>\r
+              <div class="box-tools pull-right">\r
+                <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+              </div><!-- /.box-tools -->\r
+            </div><!-- /.box-header -->\r
+            <div class="box-body no-padding">\r
+                <table class="table table-bordered  no-padding">                    \r
+                    <tr style="font-weight:bold;">\r
+                      <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+                      <td>\r
+                        <label class="radio-inline">\r
+                            <input type="radio" id="id_ctrl_secondary_radio0" name="id_ctrl_secondary_radio" data-type="0" value="0"> <span style="font-weight:bold;">0</span>\r
+                        </label>&nbsp;&nbsp;&nbsp;&nbsp;\r
+                        <label class="radio-inline">\r
+                            <input type="radio" id="id_ctrl_secondary_radio1" name="id_ctrl_secondary_radio" data-type="1" value="1"> <span style="font-weight:bold;">1</span>\r
+                        </label>\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_cn">\r
+                      <td class="td_ctrl_col" id="td_title_desc">选项说明</td>\r
+                      <td>二级启动菜单控制开关\r
+                        <code style="font-weight: bold;">0</code> 不显示 &nbsp;&nbsp; \r
+                        <code style="font-weight: bold;">1</code> 显示\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_en">\r
+                      <td class="td_ctrl_col" id="td_title_desc">Option Description</td>\r
+                      <td>\r
+                      Secondary boot menu display option\r
+                      <code style="font-weight: bold;">0</code> Don't display &nbsp;&nbsp;&nbsp;\r
+                      <code style="font-weight: bold;">1</code> Display\r
+                      </td>\r
+                    </tr>\r
+                </table>\r
+            </div><!-- /.box-body -->\r
+        </div><!-- /.box -->\r
+        \r
+        \r
+        <div class="box box-primary box-solid">\r
+            <div class="box-header with-border">\r
+              <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SHOW_PASSWORD_ASTERISK\r
+                <span id="id_span_desc_cn"> —— 输入密码时显示星号</span></h3>\r
+              <div class="box-tools pull-right">\r
+                <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+              </div><!-- /.box-tools -->\r
+            </div><!-- /.box-header -->\r
+            <div class="box-body no-padding">\r
+                <table class="table table-bordered  no-padding">                    \r
+                    <tr style="font-weight:bold;">\r
+                      <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+                      <td>\r
+                        <label class="radio-inline">\r
+                            <input type="radio" id="id_ctrl_asterisk_radio0" name="id_ctrl_asterisk_radio" data-type="0" value="0"> <span style="font-weight:bold;">0</span>\r
+                        </label>&nbsp;&nbsp;&nbsp;&nbsp;\r
+                        <label class="radio-inline">\r
+                            <input type="radio" id="id_ctrl_asterisk_radio1" name="id_ctrl_asterisk_radio" data-type="1" value="1"> <span style="font-weight:bold;">1</span>\r
+                        </label>\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_cn">\r
+                      <td class="td_ctrl_col" id="td_title_desc">选项说明</td>\r
+                      <td>输入密码时是否显示星号\r
+                        <code style="font-weight: bold;">0</code> 不显示 &nbsp;&nbsp; \r
+                        <code style="font-weight: bold;">1</code> 显示\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_en">\r
+                      <td class="td_ctrl_col" id="td_title_desc">Option Description</td>\r
+                      <td>\r
+                      Display asterisk when typing password\r
+                      <code style="font-weight: bold;">0</code> Don't display &nbsp;&nbsp;&nbsp;\r
+                      <code style="font-weight: bold;">1</code> Display\r
+                      </td>\r
+                    </tr>\r
+                </table>\r
+            </div><!-- /.box-body -->\r
+        </div><!-- /.box -->\r
+        \r
+        \r
+        \r
+        <div class="box box-primary box-solid">\r
+            <div class="box-header with-border">\r
+              <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SECONDARY_TIMEOUT\r
+                <span id="id_span_desc_cn"> —— 二级启动菜单倒计时</span></h3>\r
+              <div class="box-tools pull-right">\r
+                <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+              </div><!-- /.box-tools -->\r
+            </div><!-- /.box-header -->\r
+            <div class="box-body no-padding">\r
+                <table class="table table-bordered  no-padding">\r
+                    <tr style="font-weight:bold;">\r
+                      <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+                      <td>\r
+                        <div class="col-sm-9" style="padding-left:0px;">\r
+                            <input type="text" class="form-control" id="id_ctrl_text_secondary_timeout" name="name_ctrl_text_secondary_timeout"/>\r
+                        </div>                       \r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_cn">\r
+                      <td class="td_ctrl_col">选项说明</td>\r
+                      <td>\r
+                        二级菜单倒计时(秒)。只有当 <code>VTOY_SECONDARY_BOOT_MENU</code> 设置为1时才有效。<br/>\r
+                        默认不设置,设置之后,比如设置为10,则在倒计时10秒之后,会自动选择第一项,即:<code>Boot in normal mode</code> <br/>\r
+                        在倒计时的过程中按任意键会停止倒计时,等待用户操作。\r
+                      </td>\r
+                    </tr>\r
+                    <tr id="tr_title_desc_en">\r
+                      <td class="td_ctrl_col">Option Description</td>\r
+                      <td>\r
+                        Timeout seconds for the secondary boot menu. Only take effect when <code>VTOY_SECONDARY_BOOT_MENU</code> is 1.<br/>\r
+                        By default no timeout is set. When you set it to 10 for example, the first entry (<code>Boot in normal mode</code>) will be selected an run after 10 seconds.\r
+                      </td>\r
+                    </tr>\r
+                </table>\r
+            </div><!-- /.box-body -->\r
+        </div><!-- /.box -->\r
+        \r
+    \r
     \r
     \r
         <div class="box box-primary box-solid">\r
         </div><!-- /.box-body -->\r
       </div><!-- /.box -->\r
 \r
-\r
-        <div class="box box-primary box-solid">\r
-            <div class="box-header with-border">\r
-              <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_HELP_TXT_LANGUAGE\r
-                <span id="id_span_desc_cn"> —— 帮助信息语言</span></h3>\r
-              <div class="box-tools pull-right">\r
-                <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
-              </div><!-- /.box-tools -->\r
-            </div><!-- /.box-header -->\r
-            <div class="box-body no-padding">\r
-                <table class="table table-bordered  no-padding">\r
-                    <tr style="font-weight:bold;">\r
-                      <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
-                      <td>\r
-                        <select id="id_ctrl_sel_help_lang" name="name_ctrl_sel_help_lang" class="form-control">\r
-                            \r
-                        </select>\r
-                      </td>\r
-                    </tr>\r
-                    <tr id="tr_title_desc_cn">\r
-                      <td class="td_ctrl_col">选项说明</td>\r
-                      <td>\r
-                        快捷键 <code>h</code> 显示的帮助信息的语言版本。默认是 "en_US"。 \r
-                        具体请参考 <a target="_blank" href='https://www.ventoy.net/cn/plugin_control.html#vtoy_help_language'>Ventoy 帮助信息</a>\r
-                      </td>\r
-                    </tr>\r
-                    <tr id="tr_title_desc_en">\r
-                      <td class="td_ctrl_col">Option Description</td>\r
-                      <td>\r
-                        The language of the help text when press <code>h</code>. Default is "en_US", \r
-                        refer <a target="_blank" href='https://www.ventoy.net/en/plugin_control.html#vtoy_help_language'>Ventoy Help Text</a> for details.\r
-                      </td>\r
-                    </tr>\r
-                </table>\r
-            </div><!-- /.box-body -->\r
-        </div><!-- /.box -->\r
-\r
-\r
+        \r
 \r
     </div>\r
    \r
 </div>\r
 <script type="text/javascript">\r
+  \r
   function VtoyPageLanguageChange(newlang) {\r
     VtoyCommonChangeLanguage(newlang);\r
 \r
     var level;\r
 \r
     data.win11_bypass_check = parseInt($('input:radio[name=id_ctrl_bypass_win11_radio]:checked').val());\r
+    data.win11_bypass_nro = parseInt($('input:radio[name=id_ctrl_bypass_nro_radio]:checked').val());\r
     data.linux_remount = parseInt($('input:radio[name=id_ctrl_linux_remount_radio]:checked').val());\r
+    data.secondary_menu = parseInt($('input:radio[name=id_ctrl_secondary_radio]:checked').val());\r
+    data.password_asterisk = parseInt($('input:radio[name=id_ctrl_asterisk_radio]:checked').val());\r
     data.default_search_root = $('input:text[id=id_ctrl_text_search_root]').val();\r
     data.menu_timeout = parseInt($('input:text[id=id_ctrl_text_timeout]').val());\r
+    data.secondary_menu_timeout = parseInt($('input:text[id=id_ctrl_text_secondary_timeout]').val());\r
     data.default_image = $('input:text[id=id_ctrl_text_default_img]').val();\r
     \r
     level = $('select[id=id_ctrl_sel_max_depth').val();\r
     data.filter_vhd = parseInt($('input:radio[name=id_ctrl_radio_filt_vhd]:checked').val());\r
     data.filter_vtoy = parseInt($('input:radio[name=id_ctrl_radio_filt_vtoy]:checked').val());\r
 \r
-    data.help_text_language = $('select[id=id_ctrl_sel_help_lang').val();\r
+    data.menu_language = $('select[id=id_ctrl_sel_menu_lang').val();\r
   }\r
 \r
   function VtoyFillCurrentPageItem(data) {\r
     //VTOY_WIN11_BYPASS_CHECK\r
     $('input:radio[name=id_ctrl_bypass_win11_radio]')[data.win11_bypass_check].checked = true;\r
+    //VTOY_WIN11_BYPASS_NRO\r
+    $('input:radio[name=id_ctrl_bypass_nro_radio]')[data.win11_bypass_nro].checked = true;\r
     $('input:radio[name=id_ctrl_linux_remount_radio]')[data.linux_remount].checked = true;\r
+    $('input:radio[name=id_ctrl_secondary_radio]')[data.secondary_menu].checked = true;\r
+    $('input:radio[name=id_ctrl_asterisk_radio]')[data.password_asterisk].checked = true;\r
 \r
     //VTOY_DEFAULT_SEARCH_ROOT\r
     $('input:text[id=id_ctrl_text_search_root]').val(data.default_search_root);\r
 \r
     //VTOY_MENU_TIMEOUT\r
     $('input:text[id=id_ctrl_text_timeout]').val(data.menu_timeout);\r
+    \r
+    //VTOY_SECONDARY_TIMEOUT\r
+    $('input:text[id=id_ctrl_text_secondary_timeout]').val(data.secondary_menu_timeout);\r
 \r
 \r
     //VTOY_DEFAULT_IMAGE\r
     //VTOY_FILE_FLT_VTOY\r
     $('input:radio[name=id_ctrl_radio_filt_vtoy]')[data.filter_vtoy].checked = true;\r
 \r
-    //VTOY_HELP_TXT_LANGUAGE\r
-    if ($("select[id=id_ctrl_sel_help_lang")[0].options.length === 0)\r
+    //VTOY_MENU_LANGUAGE\r
+    if ($("select[id=id_ctrl_sel_menu_lang")[0].options.length === 0)\r
     {\r
-      for (var i = 0; i < data.help_list.length; i++) {\r
-        var hlang = data.help_list[i];\r
+      for (var i = 0; i < data.menu_list.length; i++) {\r
+        var hlang = data.menu_list[i];\r
         var opt = '<option title="'+hlang+'">'+hlang+'</option>';\r
-        $('select[id=id_ctrl_sel_help_lang').append(opt);\r
+        $('select[id=id_ctrl_sel_menu_lang').append(opt);\r
       }\r
     }\r
-    \r
-    $('select[id=id_ctrl_sel_help_lang').val(data.help_text_language);\r
+    $('select[id=id_ctrl_sel_menu_lang').val(data.menu_language);\r
   }\r
 \r
   function VtoySaveCurrentPage() {\r
       method : 'save_control',\r
       index: current_tab_index,\r
       win11_bypass_check: data.win11_bypass_check,\r
+      win11_bypass_nro: data.win11_bypass_nro,\r
       linux_remount:data.linux_remount,\r
+      secondary_menu:data.secondary_menu,\r
+      password_asterisk:data.password_asterisk,\r
       default_search_root: data.default_search_root,\r
       menu_timeout: data.menu_timeout,\r
+      secondary_menu_timeout: data.secondary_menu_timeout,\r
       default_image: data.default_image,\r
       max_search_level: data.max_search_level,\r
       default_kbd_layout: data.default_kbd_layout,\r
       filter_img: data.filter_img,\r
       filter_vhd: data.filter_vhd,\r
       filter_vtoy: data.filter_vtoy,\r
-      help_text_language: data.help_text_language\r
+      menu_language: data.menu_language\r
     }, function(e) {\r
       Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);\r
     });\r
 \r
   $('input[type=radio]').each(function(){\r
     var id = $(this).attr('id');\r
-    if (id.startsWith('id_ctrl')) {\r
+    if (typeof(id) != 'undefined' && id.startsWith('id_ctrl')) {\r
       $(this).change(VtoySaveCurrentPage);\r
     }\r
   });\r
   $('select[id=id_ctrl_sel_max_depth]').change(VtoySaveCurrentPage);\r
   $('select[id=id_ctrl_sel_kbd]').change(VtoySaveCurrentPage);\r
-  $('select[id=id_ctrl_sel_help_lang]').change(VtoySaveCurrentPage);\r
+  $('select[id=id_ctrl_sel_menu_lang]').change(VtoySaveCurrentPage);\r
   $('input[id=id_ctrl_text_timeout]').change(function() {\r
     var value = $('input:text[id=id_ctrl_text_timeout]').val();\r
     if (/^[0-9][0-9]*$/.test(value)) {\r
       $('input:text[id=id_ctrl_text_timeout]').val(m_data_control[current_tab_index].menu_timeout);\r
     }\r
   });\r
+  $('input[id=id_ctrl_text_secondary_timeout]').change(function() {\r
+    var value = $('input:text[id=id_ctrl_text_secondary_timeout]').val();\r
+    if (/^[0-9][0-9]*$/.test(value)) {\r
+      VtoySaveCurrentPage();\r
+    } else {\r
+      Message.error(g_vtoy_cur_language.STR_INVALID_TIMEOUT);\r
+      $('input:text[id=id_ctrl_text_secondary_timeout]').val(m_data_control[current_tab_index].secondary_menu_timeout);\r
+    }\r
+  });\r
 \r
   $('#id_tab_control a[href="#tab_0"]').click(OnClickMultiModeTab);\r
   $('#id_tab_control a[href="#tab_1"]').click(OnClickMultiModeTab);\r
   $('#id_tab_control a[href="#tab_3"]').click(OnClickMultiModeTab);\r
   $('#id_tab_control a[href="#tab_4"]').click(OnClickMultiModeTab);\r
   $('#id_tab_control a[href="#tab_5"]').click(OnClickMultiModeTab);\r
+  \r
+  function UpdateTabTitleIcon(data) {\r
+    CommonUpdateTabTitleIcon(data.exist_control, '#id_tab_control a[href="#tab_', 'control');\r
+  }\r
+  $('#id_btn_reset').click(function() { \r
+    Modal.confirm({msg:GetResetTabConfigTipMsg(current_tab_index, 'control')}).on(function(e) {\r
+        if (e) {            \r
+            VtoyFillCurrentPageItem(m_data_control[g_vtoy_data_default_index]);\r
+            VtoySaveCurrentPage();\r
+        }\r
+    });\r
+  });\r
 \r
   $('#id_tab_control a[href="#tab_0"]').tab('show');\r
   VtoyFillCurrentPageItem(m_data_control[0]);\r