\r
<div class="navbar-custom-menu">\r
<ul class="nav navbar-nav">\r
+ <li class="dropdown user user-menu">\r
+ <a href="javascript:void(0)" id="id_a_preview">\r
+ <span class="fa fa-file-code-o"></span> \r
+ <span id="id_span_preview" class="hidden-xs">Preview</span>\r
+ <span class="hidden-xs"> </span>\r
+ </a> \r
+ </li>\r
+ \r
<li class="dropdown user user-menu">\r
<a href="javascript:void(0)" id="id_a_language">\r
<span class="fa fa-language"></span> \r
</div>\r
</div>\r
</div>\r
+ \r
+ \r
+ <div class="modal" id="JsonPreviewModal">\r
+ <div class="modal-dialog" style="width: 80%;">\r
+ <div class="modal-content">\r
+ <form id="JsonPeviewForm" class="form-horizontal"> \r
+ <div class="modal-header">\r
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">\r
+ <span aria-hidden="true">×</span>\r
+ </button>\r
+ <h4>\r
+ <b id="JsonPreviewForm_lang_1">JSON</b> \r
+ <button type="button" id="id_btn_json_copy" class="btn btn-primary"><span class="fa fa-copy"> </span><span id="id_span_copy">Copy</span></button>\r
+ </h4>\r
+ \r
+ </div>\r
+ <div class="modal-body">\r
+ <textarea id="pre_json_preview" class="form-control" rows="30" style="font-family:Menlo,Monaco,Consolas,'Courier New',monospace" spellcheck="false"></textarea>\r
+ </div>\r
+ <div class="modal-footer">\r
+ <button id="PrewForm_lang_2" type="button" class="btn btn-primary btn-flat" data-dismiss="modal">确定</button>\r
+ </div>\r
+ </form>\r
+ </div>\r
+ </div> \r
+ </div>\r
\r
\r
<!-- Content Wrapper. Contains page content -->\r
\r
<footer class="main-footer">\r
<div class="pull-right hidden-xs">\r
- <b id="plugson_build_date">20220204 16:31:23</b>
+ <b id="plugson_build_date">20231014 18:52:12</b>
</div>\r
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>\r
</footer>\r
<script src="/static/js/jQuery-2.1.4.min.js"></script>\r
<!-- jquery validate -->\r
<script src="/static/js/jquery.validate.min.js"></script> \r
- <script src="/static/js/jquery.validate.vtoymethods.js"></script>\r
+ <script src="/static/js/jquery.validate.vtoymethods.js?v=192"></script>\r
\r
- <script src="/static/js/vtoy.js"></script>\r
- <script src="/static/js/jquery.vtoy.alert.js"></script>\r
+ <script src="/static/js/jquery.vtoy.alert.js?v=192"></script>\r
+ <script src="/static/js/vtoy.js?v=192"></script>\r
<script src="/static/js/md5.min.js"></script>\r
\r
<!-- Bootstrap 3.3.5 -->\r
\r
<script type="text/javascript">\r
\r
+ function VtoyJsonCopyClick() {\r
+ var copyText = document.getElementById("pre_json_preview");\r
+ copyText.select();\r
+ copyText.setSelectionRange(0, 99999); // For mobile devices\r
+\r
+ try {\r
+ var successful = document.execCommand('copy');\r
+ copyText.setSelectionRange(0, 0);\r
+ if (successful) {\r
+ Message.success(g_vtoy_cur_language.STR_JSON_COPY_SUCCESS);\r
+ } else {\r
+ Message.error(g_vtoy_cur_language.STR_JSON_COPY_FAILED);\r
+ }\r
+ } catch (err) {\r
+ Message.error(g_vtoy_cur_language.STR_JSON_COPY_FAILED);\r
+ }\r
+ }\r
+\r
+ function VtoyPreviewClick() {\r
+ callVtoySync({\r
+ method : 'preview_json'\r
+ }, function(data) {\r
+ $('#JsonPeviewForm #JsonPreviewForm_lang_1').text(g_vtoy_cur_language.STR_JSON_PREVIEW);\r
+ $('#JsonPeviewForm #PrewForm_lang_2').text(g_vtoy_cur_language.STR_BTN_OK);\r
+ \r
+ $('#pre_json_preview').text(VtoyUTF16HexToAscii(data.json)); \r
+ $("#JsonPreviewModal").modal();\r
+ });\r
+ }\r
+ \r
function VtoyLanguageClick() {\r
var defaultPage = window.location.hash;\r
\r
\r
});\r
\r
+ $('#id_btn_json_copy').click(VtoyJsonCopyClick);\r
+ $('#id_a_preview').click(VtoyPreviewClick);\r
$('#id_a_language').click(VtoyLanguageClick);\r
\r
$("#plugson-menu a").click(function() {\r
\r
\r
(function ventoy_handshake() {\r
-\r
- if (m_syntax_error === 1) {\r
- \r
- }\r
-\r
callVtoyCatchErr({\r
method : 'handshake'\r
}, \r
m_invalid_config = 0;\r
}\r
\r
+ if (data.save_error === 1) {\r
+ var title = g_current_language == 'en' ? g_vtoy_cur_language_en.STR_INFO : g_vtoy_cur_language_cn.STR_INFO;\r
+ var msg = g_current_language == 'en' ? g_vtoy_cur_language_en.STR_CONFIG_SAVE_ERROR_TIP : g_vtoy_cur_language_cn.STR_CONFIG_SAVE_ERROR_TIP;\r
+ Modal.alert({title:title,msg:msg}).on(function(e) {\r
+ });\r
+ }\r
+\r
+ if (typeof(UpdateTabTitleIcon)==='function') {\r
+ UpdateTabTitleIcon(data);\r
+ }\r
+\r
setTimeout(function() {\r
ventoy_handshake();\r
- }, 1000);\r
+ }, 200);\r
},\r
\r
function(xmlHttpRequest, textStatus, errorThrown) {\r