mirror of https://github.com/ventoy/Ventoy.git
Add theme plugin duplicate file check. (#2078)
This commit is contained in:
parent
bf797ceadb
commit
9b7d6cbc3d
|
@ -70,6 +70,7 @@
|
||||||
#define VTOY_JSON_TOKEN_ERR_RET "{ \"result\" : \"tokenerror\" }"
|
#define VTOY_JSON_TOKEN_ERR_RET "{ \"result\" : \"tokenerror\" }"
|
||||||
#define VTOY_JSON_EXIST_RET "{ \"result\" : \"exist\" }"
|
#define VTOY_JSON_EXIST_RET "{ \"result\" : \"exist\" }"
|
||||||
#define VTOY_JSON_TIMEOUT_RET "{ \"result\" : \"timeout\" }"
|
#define VTOY_JSON_TIMEOUT_RET "{ \"result\" : \"timeout\" }"
|
||||||
|
#define VTOY_JSON_DUPLICATE "{ \"result\" : \"duplicate\" }"
|
||||||
#define VTOY_JSON_BUSY_RET "{ \"result\" : \"busy\" }"
|
#define VTOY_JSON_BUSY_RET "{ \"result\" : \"busy\" }"
|
||||||
#define VTOY_JSON_INUSE_RET "{ \"result\" : \"inuse\" }"
|
#define VTOY_JSON_INUSE_RET "{ \"result\" : \"inuse\" }"
|
||||||
#define VTOY_JSON_NOTFOUND_RET "{ \"result\" : \"notfound\" }"
|
#define VTOY_JSON_NOTFOUND_RET "{ \"result\" : \"notfound\" }"
|
||||||
|
|
|
@ -918,9 +918,11 @@ static int ventoy_api_theme_add_file(struct mg_connection *conn, VTOY_JSON *json
|
||||||
int ret;
|
int ret;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
const char *path = NULL;
|
const char *path = NULL;
|
||||||
|
const char *realpath = NULL;
|
||||||
path_node *node = NULL;
|
path_node *node = NULL;
|
||||||
path_node *cur = NULL;
|
path_node *cur = NULL;
|
||||||
data_theme *data = NULL;
|
data_theme *data = NULL;
|
||||||
|
char pathbuf[MAX_PATH];
|
||||||
|
|
||||||
vtoy_json_get_int(json, "index", &index);
|
vtoy_json_get_int(json, "index", &index);
|
||||||
data = g_data_theme + index;
|
data = g_data_theme + index;
|
||||||
|
@ -928,6 +930,19 @@ static int ventoy_api_theme_add_file(struct mg_connection *conn, VTOY_JSON *json
|
||||||
path = VTOY_JSON_STR_EX("path");
|
path = VTOY_JSON_STR_EX("path");
|
||||||
if (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));
|
node = zalloc(sizeof(path_node));
|
||||||
if (node)
|
if (node)
|
||||||
{
|
{
|
||||||
|
@ -980,16 +995,31 @@ static int ventoy_api_theme_add_font(struct mg_connection *conn, VTOY_JSON *json
|
||||||
int ret;
|
int ret;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
const char *path = NULL;
|
const char *path = NULL;
|
||||||
|
const char *realpath = NULL;
|
||||||
path_node *node = NULL;
|
path_node *node = NULL;
|
||||||
path_node *cur = NULL;
|
path_node *cur = NULL;
|
||||||
data_theme *data = NULL;
|
data_theme *data = NULL;
|
||||||
|
char pathbuf[MAX_PATH];
|
||||||
|
|
||||||
vtoy_json_get_int(json, "index", &index);
|
vtoy_json_get_int(json, "index", &index);
|
||||||
data = g_data_theme + index;
|
data = g_data_theme + index;
|
||||||
|
|
||||||
path = VTOY_JSON_STR_EX("path");
|
path = VTOY_JSON_STR_EX("path");
|
||||||
if (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));
|
node = zalloc(sizeof(path_node));
|
||||||
if (node)
|
if (node)
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -757,7 +757,7 @@
|
||||||
|
|
||||||
<footer class="main-footer">
|
<footer class="main-footer">
|
||||||
<div class="pull-right hidden-xs">
|
<div class="pull-right hidden-xs">
|
||||||
<b id="plugson_build_date">20221220 18:30:51</b>
|
<b id="plugson_build_date">20221220 19:41:37</b>
|
||||||
</div>
|
</div>
|
||||||
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>
|
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -777,10 +777,10 @@
|
||||||
<script src="/static/js/jQuery-2.1.4.min.js"></script>
|
<script src="/static/js/jQuery-2.1.4.min.js"></script>
|
||||||
<!-- jquery validate -->
|
<!-- jquery validate -->
|
||||||
<script src="/static/js/jquery.validate.min.js"></script>
|
<script src="/static/js/jquery.validate.min.js"></script>
|
||||||
<script src="/static/js/jquery.validate.vtoymethods.js?v=101"></script>
|
<script src="/static/js/jquery.validate.vtoymethods.js?v=102"></script>
|
||||||
|
|
||||||
<script src="/static/js/jquery.vtoy.alert.js?v=101"></script>
|
<script src="/static/js/jquery.vtoy.alert.js?v=102"></script>
|
||||||
<script src="/static/js/vtoy.js?v=101"></script>
|
<script src="/static/js/vtoy.js?v=102"></script>
|
||||||
<script src="/static/js/md5.min.js"></script>
|
<script src="/static/js/md5.min.js"></script>
|
||||||
|
|
||||||
<!-- Bootstrap 3.3.5 -->
|
<!-- Bootstrap 3.3.5 -->
|
||||||
|
|
|
@ -403,9 +403,13 @@
|
||||||
index: current_tab_index,
|
index: current_tab_index,
|
||||||
path: data.path
|
path: data.path
|
||||||
}, function(e) {
|
}, function(e) {
|
||||||
list.push(data);
|
if (e.result === 'success') {
|
||||||
FillThemeFileTable(list, m_data_theme[current_tab_index].default_file);
|
list.push(data);
|
||||||
Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
|
FillThemeFileTable(list, m_data_theme[current_tab_index].default_file);
|
||||||
|
Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
|
||||||
|
} else if (e.result === 'duplicate') {
|
||||||
|
Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,9 +432,13 @@
|
||||||
index: current_tab_index,
|
index: current_tab_index,
|
||||||
path: data.path
|
path: data.path
|
||||||
}, function(e) {
|
}, function(e) {
|
||||||
list.push(data);
|
if (e.result === 'success') {
|
||||||
FillThemeFontTable(list);
|
list.push(data);
|
||||||
Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
|
FillThemeFontTable(list);
|
||||||
|
Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS);
|
||||||
|
} else if (e.result === 'duplicate') {
|
||||||
|
Message.error(g_vtoy_cur_language.STR_DUPLICATE_PATH);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue