#define VTOY_JSON_TOKEN_ERR_RET "{ \"result\" : \"tokenerror\" }"
#define VTOY_JSON_EXIST_RET "{ \"result\" : \"exist\" }"
#define VTOY_JSON_TIMEOUT_RET "{ \"result\" : \"timeout\" }"
+#define VTOY_JSON_DUPLICATE "{ \"result\" : \"duplicate\" }"
#define VTOY_JSON_BUSY_RET "{ \"result\" : \"busy\" }"
#define VTOY_JSON_INUSE_RET "{ \"result\" : \"inuse\" }"
#define VTOY_JSON_NOTFOUND_RET "{ \"result\" : \"notfound\" }"
int ret;
int index = 0;
const char *path = NULL;
+ const char *realpath = NULL;
path_node *node = NULL;
path_node *cur = NULL;
data_theme *data = NULL;
+ char pathbuf[MAX_PATH];
vtoy_json_get_int(json, "index", &index);
data = g_data_theme + index;
path = VTOY_JSON_STR_EX("path");
if (path)
{
+ realpath = ventoy_real_path(path);
+ scnprintf(pathbuf, sizeof(pathbuf), "%s", realpath);
+
+ for (node = data->filelist; node; node = node->next)
+ {
+ realpath = ventoy_real_path(node->path);
+ if (strcmp(pathbuf, realpath) == 0)
+ {
+ ventoy_json_result(conn, VTOY_JSON_DUPLICATE);
+ return 0;
+ }
+ }
+
node = zalloc(sizeof(path_node));
if (node)
{
int ret;
int index = 0;
const char *path = NULL;
+ const char *realpath = NULL;
path_node *node = NULL;
path_node *cur = NULL;
data_theme *data = NULL;
-
+ char pathbuf[MAX_PATH];
+
vtoy_json_get_int(json, "index", &index);
data = g_data_theme + index;
path = VTOY_JSON_STR_EX("path");
if (path)
{
+ realpath = ventoy_real_path(path);
+ scnprintf(pathbuf, sizeof(pathbuf), "%s", realpath);
+
+ for (node = data->fontslist; node; node = node->next)
+ {
+ realpath = ventoy_real_path(node->path);
+ if (strcmp(pathbuf, realpath) == 0)
+ {
+ ventoy_json_result(conn, VTOY_JSON_DUPLICATE);
+ return 0;
+ }
+ }
+
node = zalloc(sizeof(path_node));
if (node)
{
\r
<footer class="main-footer">\r
<div class="pull-right hidden-xs">\r
- <b id="plugson_build_date">20221220 18:30:51</b>
+ <b id="plugson_build_date">20221220 19:41:37</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?v=101"></script>\r
+ <script src="/static/js/jquery.validate.vtoymethods.js?v=102"></script>\r
\r
- <script src="/static/js/jquery.vtoy.alert.js?v=101"></script>\r
- <script src="/static/js/vtoy.js?v=101"></script>\r
+ <script src="/static/js/jquery.vtoy.alert.js?v=102"></script>\r
+ <script src="/static/js/vtoy.js?v=102"></script>\r
<script src="/static/js/md5.min.js"></script>\r
\r
<!-- Bootstrap 3.3.5 -->\r
index: current_tab_index,\r
path: data.path\r
}, function(e) {\r
- list.push(data);\r
- FillThemeFileTable(list, m_data_theme[current_tab_index].default_file);\r
- Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);\r
+ if (e.result === 'success') {\r
+ list.push(data);\r
+ FillThemeFileTable(list, m_data_theme[current_tab_index].default_file);\r
+ Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);\r
+ } else if (e.result === 'duplicate') {\r
+ Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);\r
+ }\r
});\r
}\r
\r
index: current_tab_index,\r
path: data.path\r
}, function(e) {\r
- list.push(data);\r
- FillThemeFontTable(list);\r
- Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);\r
+ if (e.result === 'success') {\r
+ list.push(data);\r
+ FillThemeFontTable(list);\r
+ Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);\r
+ } else if (e.result === 'duplicate') {\r
+ Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);\r
+ }\r
});\r
}\r
\r